JShell là công cụ command-line tương tác dùng để thực thi câu lệnh đơn giản như biểu thức, class, method, field, interface... Lớp String thuộc package built-in java.lang cung cấp nhiều phương thức xử lý văn bản phổ biến.
1) Tiện ích String: String cung cấp vài phương thức tiện ích built-in. Các phương thức như indexOf(), lastIndexOf(), startsWith(), endsWith(), isEmpty(), equals(), equalsIgnoreCase() thuộc tiện ích String.
Đoạn mã dưới triển khai các phương thức tiện ích String trong JShell.
Đoạn mã 1
jshell> String str = "JShell is a new feature in Java9";
str ==> "JShell is a new feature in Java9"
jshell> str.indexOf("new")
$4 ==> 12
jshell> str.charAt(7)
$5 ==> 'i'
jshell> str.indexOf('i')
$6 ==> 7
jshell> str.lastIndexOf('i')
$7 ==> 24
jshell> str.contains("feature")
$8 ==> true
jshell> str.startsWith("JShell")
$9 ==> true
jshell> str.startsWith("Java9")
$10 ==> false
jshell> str.endsWith("Java9")
$11 ==> true
jshell> str.endsWith("a9")
$12 ==> true
jshell> str.endsWith("a9java")
$13 ==> false
jshell> String str1 = "value"
str1 ==> "value"
jshell> str1.equals("value")
$15 ==> true
jshell> str1.equals("VALUE")
$16 ==> false
jshell> str1.equalsIgnoreCase("VALUE")
$17 ==> true
2) Tính bất biến của String: Đối tượng String immutable, nghĩa là không thể thay đổi giá trị sau khi tạo.
Đoạn mã dưới: phương thức concat() nối nội dung hai String thành một. Tuy nhiên giá trị gốc tham chiếu bởi str không đổi. concat() tạo String object mới. Tương tự toUpperCase(), toLowerCase(), trim() trả về String mới.
Đoạn mã 2
jshell> String str = "Tutorialspoint";
str ==> "Tutorialspoint"
jshell> str.concat(" is e-learning app");
$3 ==> "Tutorialspoint is e-learning app"
jshell> str
str ==> "Tutorialspoint"
jshell> String str1 = str.concat(".");
str1 ==> "Tutorialspoint."
jshell> str1
str1 ==> "Tutorialspoint."
jshell> String str = str.concat(" is e-learning app");
str ==> "Tutorialspoint is e-learning app"
jshell> str
str ==> "Tutorialspoint is e-learning app"
jshell> String str1 = "Tutorialspoint";
str1 ==> "Tutorialspoint"
jshell> str1.concat(" is e-learning app");
$2 ==> "Tutorialspoint is e-learning app"
jshell> str1
str1 ==> "Tutorialspoint"
jshell> String str2 = str1.concat(" is e-learning app");
str2 ==> "Tutorialspoint is e-learning app"
jshell> str1
str1 ==> "Tutorialspoint"
jshell> String str3 = str2.concat(".");
str3 ==> "Tutorialspoint is e-learning app."
jshell> str1
str1 ==> "Tutorialspoint"
jshell> str2
str2 ==> "Tutorialspoint is e-learning app"
jshell> String s = "Tutorialspoint is e-learning app.";
s ==> "Tutorialspoint is e-learning app."
jshell> s.toUpperCase()
$10 ==> "TUTORIALSPOINT IS E-LEARNING APP."
jshell> s.toLowerCase()
$11 ==> "tutorialspoint is e-learning app."