字串是字元序列,但在java中,它們被視為物件並且本質上是不可變的; java 提供了java.lang.String 包,提供了不同的方法來操作字串,但我們也可以在java 中建立可變字串。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
我們可以使用字串文字和 new 關鍵字來定義它。但區別在於,文字不會創建新對象,除非並且直到它在字串池中不可用。然而,無論字串常數池如何,new關鍵字總是會創建新對象,因為它在堆區域中創建字串。
在java中,我們可以使用以下兩種方式定義字串:
我們使用literal建立的字串直接進入字串常數池。這意味著如果請求的字串已經存在於字串池中,那麼將傳回現有的字串,如果請求的字串不存在,則只會建立該字串的新實例並將其放入池中以供日後參考。 JVM 執行所有這些事情。
文法:
String s="abc"; String s1 = "abc" ;
在上述場景中,字串池中只會建立一個對象,因為JVM 將無法找到所請求的對象,因此它將創建該對象並將其放入池中,並且s1 將僅指向該引用以供進一步使用。因此,字串文字還可以透過不再創建相同的實例來節省記憶體。因此,它們使我們的程式碼記憶體效率更高。
在java中,我們使用new關鍵字來建立一個新物件。每當我們使用 new 關鍵字時,它都會為我們建立一個新物件。另外,使用 new 關鍵字建立的物件會被放入堆記憶體區域。
文法:
String s = new Stirng("abc");
在上面的例子中,這個物件會被放入堆記憶體區域,而不是字串池,因為我們使用new關鍵字來建立它。
範例:
public class Main { public static void main(String[] args) { String s = "abc"; String s1 = "abc"; String ss = new String("abc"); System.out.println("Output will be :: " + s + " "+ s1 +" "+ ss); } }
輸出:
它是不可變的,因此一旦分配我們就無法更改它的值。因此,為了創建可變字串,我們需要使用字串緩衝區。
需要記住的幾點:
可用的各種方法如下:
此外,字串類別也實作了一個接口,即 CharSequence 介面; StringBuilder和String Buffer也實作了這個介面。 StringBuffer和StringBuilder用於在java中建立可變字串。
代碼:
public class Demo{ public static void main(String[] args) { StringBuffer sb=new StringBuffer("creating string "); sb.append("executed");//original string will get chnage System.out.println("Result is " +sb);//it will print creating string executed } }
輸出:
代碼:
public class Main{ public static void main(String[] args) { StringBuilder sb=new StringBuilder("Creating string"); sb.append(" using string Builder");//original will get change System.out.println("Result is "+sb); } }
輸出:
以下是範例:
代碼:
public class Main{ public static void main(String[] args) { String s1="demoforsting"; System.out.println("String is " +s1.substring(2,4)); System.out.println( "with one parameter " +s1.substring(2)); } }
輸出:
Code:
public class Demo{ public static void main(String[] args) { String s1="abc"; String s2="abc"; String s3="ABC"; String s4="java"; System.out.println("Result is " +s1.equals(s2));//true System.out.println("Result is " +s1.equals(s3));//false System.out.println("Result is " +s1.equals(s4));//false } }
Output:
Code:
public class Demo{ public static void main(String[] args) { String s1="convert it into uppercase"; String upper=s1.toUpperCase(); System.out.println("result is "+upper); } }
Output:
Code:
public class Demo{ public static void main(String[] args) { String s1="CONVERT IT INTO LOWER CASE"; String s1upper=s1.toLowerCase(); System.out.println("result is "+s1upper); } }
Output:
Code:
public class Main{ public static void main(String[] args) { String name="Demo to check contains method"; System.out.println("Result for conatins mehtod is " +name.contains("check")); System.out.println("Result for conatins mehtod is " +name.contains("method")); System.out.println("Result for conatins mehtod is " +name.contains("move")); } }
Output:
Code:
public class Main{ public static void main(String[] args) { String str1 = "Demo for"; String str2 = "Concat"; String str3 = "Method"; // doing for string one String str4 = str1.concat(str2); System.out.println("Result is "+str4); // for multiple string String str5 = str1.concat(str2).concat(str3); System.out.println("Result is "+str5); } }
Output:
Code:
public class Main { public static void main(String[] args) { String s1 =" Provide space to see use of trim method in java "; System.out.println(s1.length()); System.out.println("without trim output is "+s1); //Not using trim here String tr = s1.trim(); System.out.println(tr.length()); System.out.println("with trim output is "+tr); //using trim here } }
Output:
So java string is an immutable object that provides security in various aspects like URL reading, database username and password, port, and many other things. But if we want to create a mutable string, we should use a string buffer and builder.
以上是Java 中的字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!