Javaの文字列

WBOY
WBOYオリジナル
2024-08-30 15:12:54679ブラウズ

文字列は一連の文字ですが、Java では文字列はオブジェクトとして扱われ、本質的には不変です。 Java は、文字列を操作するために使用できるさまざまなメソッドを備えた java.lang.String パッケージを提供しますが、Java で可変文字列を作成することもできます。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

Java で文字列を定義するには?

文字列リテラルと new キーワードを使用して定義できます。ただし、違いは文字通り、文字列プールで利用可能になるまで、新しいオブジェクトは作成されないことです。ただし、 new キーワードはヒープ領域に文字列を作成するため、文字列定数プールに関係なく常に新しいオブジェクトを作成します。

  • 変更可能な文字列
  • 不変の文字列

Java で文字列を作成するには?

Java では、次の 2 つの方法を使用して文字列を定義できます。

  • 文字列リテラルを使用する
  • 新しいキーワードを使用する

1.文字列リテラル

リテラルを使用して作成した文字列は、文字列定数プールに直接保存されます。これは、要求された文字列が文字列プールにすでに存在する場合、要求された文字列が存在しない場合は既存の文字列が返され、文字列の新しいインスタンスのみが作成され、今後の参照のためにプールに配置されることを意味します。 JVM はこれらすべてを実行します。

構文:

String s="abc";
String s1 = "abc" ;

上記のシナリオでは、JVM は要求されたオブジェクトを見つけることができないため、文字列プールにオブジェクトが 1 つだけ作成され、それを作成してプールに配置し、s1 はその参照のみを指します。さらなる使用のために。したがって、文字列リテラルは、同じインスタンスを再度作成しないことでメモリを節約することもできます。したがって、コードメモリが効率的になります。

2.新しいキーワード

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);
}
}

出力:

Javaの文字列

Java の文字列に関する規則と規則

これは不変なので、一度割り当てられた値を変更することはできません。したがって、変更可能な文字列を作成するには、文字列バッファーを使用する必要があります。

覚えておくべき点がいくつかあります:

  • 文字列を定義するときは、必ず二重引用符で囲んでください。
  • これらは不変です。つまり、一度割り当てられた値は変更できません。
  • 「+」演算子は 2 つ以上の文字列を連結できます。
  • コンストラクターを呼び出さずに、文字列を変数に直接割り当てることができます。

Java の String クラスのメソッド

利用可能なさまざまな方法は次のとおりです:

  • トリム()
  • 大文字に
  • 小文字に
  • valueOf(int 値)
  • toLowerCase(ロケール l)
  • インターン()
  • indexOf(int ch)
  • indexOf(String substring, int fromIndex)
  • indexOf(文字列部分文字列)
  • split(文字列正規表現、整数制限)
  • concat(String str)
  • indexOf(int ch, int fromIndex)
  • 長さ()
  • 等しい(別のオブジェクト)
  • join(CharSequence 区切り文字、Iterable 要素)
  • isEmpty()
  • replace(古い文字、新しい文字)
  • equalsIgnoreCase(別の文字列)
  • split(文字列正規表現)
  • toUpperCase(ロケール l)
  • contains(CharSequence s)
  • charAt(int インデックス)
  • replace(古い CharSequence、新しい CharSequence)
  • join(CharSequence 区切り文字、CharSequence…要素)
  • 部分文字列(int beginIndex)
  • ubstring(int beginIndex, int endIndex)
  • Java の String クラスは、
  • という名前の別のインターフェイスを実装します。
  • シリアル化可能
  • 同等
  • CharSequence

また、文字列クラスはもう 1 つのインターフェイス、つまり CharSequence インターフェイスを実装します。 StringBuilder と String Buffer もこのインターフェイスを実装します。 StringBuffer と StringBuilder は、Java で可変文字列を作成するために使用されます。

例 – StringBuffer の使用

コード:

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
}
}

出力:

Javaの文字列

例 – StringBuilder の使用

コード:

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);
}
}

出力:

Javaの文字列

以下に例を示します:

例 #1

コード:

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));
}
}

出力:

Javaの文字列

Example #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:

Javaの文字列

Example #3

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:

Javaの文字列

Example #4

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:

Javaの文字列

Example #5

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:

Javaの文字列

Example #6

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:

Javaの文字列

Example #7

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:

Javaの文字列

Conclusion

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Javaでの型変換次の記事:Javaでの型変換