ホームページ >Java >&#&チュートリアル >Javaの文字列
文字列は一連の文字ですが、Java では文字列はオブジェクトとして扱われ、本質的には不変です。 Java は、文字列を操作するために使用できるさまざまなメソッドを備えた java.lang.String パッケージを提供しますが、Java で可変文字列を作成することもできます。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
文字列リテラルと new キーワードを使用して定義できます。ただし、違いは文字通り、文字列プールで利用可能になるまで、新しいオブジェクトは作成されないことです。ただし、 new キーワードはヒープ領域に文字列を作成するため、文字列定数プールに関係なく常に新しいオブジェクトを作成します。
Java では、次の 2 つの方法を使用して文字列を定義できます。
リテラルを使用して作成した文字列は、文字列定数プールに直接保存されます。これは、要求された文字列が文字列プールにすでに存在する場合、要求された文字列が存在しない場合は既存の文字列が返され、文字列の新しいインスタンスのみが作成され、今後の参照のためにプールに配置されることを意味します。 JVM はこれらすべてを実行します。
構文:
String s="abc"; String s1 = "abc" ;
上記のシナリオでは、JVM は要求されたオブジェクトを見つけることができないため、文字列プールにオブジェクトが 1 つだけ作成され、それを作成してプールに配置し、s1 はその参照のみを指します。さらなる使用のために。したがって、文字列リテラルは、同じインスタンスを再度作成しないことでメモリを節約することもできます。したがって、コードメモリが効率的になります。
Java では、新しいオブジェクトを作成するために 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); } }
出力:
これは不変なので、一度割り当てられた値を変更することはできません。したがって、変更可能な文字列を作成するには、文字列バッファーを使用する必要があります。
覚えておくべき点がいくつかあります:
利用可能なさまざまな方法は次のとおりです:
また、文字列クラスはもう 1 つのインターフェイス、つまり 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 中国語 Web サイトの他の関連記事を参照してください。