如何在 Java 9 的 JShell 中實現字串實用程式和不變性?
JShell 是一個互動式的命令列工具,用於實現簡單的語句,例如表示式、類、方法、欄位、介面等。String類是內建java.lang包的一部分,並提供了幾種用於常見文字處理的方法。
1) 字串實用程式:String 提供了幾種內建實用程式方法。諸如indexOf()、lastIndexOf()、startsWith()、endsWith()、isEmpty()、equals()、equalsIgnoreCase() 等方法都是字串實用程式的一部分。
在下面的程式碼片段中,我們在 JShell 工具中實現了字串實用程式方法。
片段 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) 字串不變性:String 物件是不可變的,這意味著在建立後我們無法更改其值。
在下面的程式碼片段中,String 類的concat() 方法將兩個 String 物件的內容連線到一個物件中。但是,"str"引用的原始值保持不變。concat() 方法將建立一個新的 String 物件。就像concat() 方法一樣,其他 String 方法(如toUpperCase()、toLowerCase() 和trim() 方法)也會返回新的 String 物件。
片段 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."
廣告