Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để triển khai tiện ích chuỗi và tính bất biến trong JShell trong Java 9?


JShell là một dòng lệnh tương tác công cụ được sử dụng để triển khai các câu lệnh đơn giản như biểu thức, lớp, phương thức, trường, giao diện, v.v. Chuỗi lớp là một phần của java.lang được tích hợp sẵn đóng gói và cung cấp một số phương pháp để xử lý văn bản phổ biến.

1) Tiện ích chuỗi :Chuỗi cung cấp một số tiện ích tích hợp sẵn các phương pháp. Các phương thức như indexOf () , lastIndexOf () , startedWith () , endWith () , isEmpty () , bằng () , equalsIgnoreCase () đó là một phần của tiện ích chuỗi.

Trong đoạn mã dưới đây, chúng tôi đã triển khai các phương thức tiện ích chuỗi trong công cụ JShell.

Snippet-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 chuỗi: Các đối tượng chuỗi là không thể thay đổi , có nghĩa là chúng tôi không thể thay đổi giá trị của chúng sau khi chúng được tạo.

Trong đoạn mã bên dưới, phương thức concat () của lớp String nối nội dung của hai đối tượng String thành một. Tuy nhiên, giá trị ban đầu được tham chiếu bởi " str "vẫn không thay đổi. concat () phương thức sẽ tạo một đối tượng String mới. Cũng giống như concat () phương thức, các phương thức Chuỗi khác, chẳng hạn như toUpperCase () , toLowerCase () trim () các phương thức trả về các đối tượng Chuỗi mới.

Snippet-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."