Javaでの文字列の使用について知っておくべきこと

Javaでの文字列の使用について知っておくべきこと

Javaの学習を開始すると、その独自のプロパティのおかげで、Stringクラスが注目を集めます。





Javaで文字列を作成および操作するのは、他の言語よりも簡単です。これは、Stringクラスがさまざまな機能を提供するためです。





これらの機能に基づいて、好みやニーズに応じて文字列を生成および編集する方法がいくつかあります。同様に、多くはアプリケーションと文字列を使用する必要がある場所によって異なります。





Java文字列はどのように異なりますか?

以前にC言語を使用したことがある場合は、Cの文字列が次の配列であることをご存知でしょう。 文字 (文字)。一方、Java文字列は不変であり、Unicode文字が含まれています。

デュアルブートウィンドウズ10とLinux

Javaの文字列を一意にする重要な機能の1つは、連結です。加算演算子+を使用して、2つ以上の文字列を結合するだけです。これは、次のような他のJavaオブジェクトでは実行できないことです。 また サークル



また、前述のように、Java文字列は不変です。つまり、変更することはできません。たとえば、次のようなメソッド toUpperCase()toLowerCase() 既存の文字列の内容を変更する代わりに、完全に新しい文字列を生成します。これで、コードはこの新しく生成された文字列を返します。

関連:これらの関数を使用してPHPでテキストを操作する方法





文字列が異なるもう1つの領域は、Cなどの言語で文字列を終了するためにヌル文字を使用する場合です。Javaでは、文字列は文字配列でサポートされるオブジェクトです。文字配列が文字列を表す方法で文字列の内容を読みたい場合は、 toCharArray() メソッドがその仕事をします。

Javaで文字列を比較することも、他のプログラミング言語よりも便利です。文字列を比較するための長いコードブロックを作成する代わりに、 equals() 任意のプログラムで使用される2つ以上の文字列を比較するメソッド。これは主に、Javaでは 等しい メソッドはStringクラスによってオーバーライドされ、文字列の比較が簡単になります。





同様に、Javaでの部分文字列内の検索も手間がかかりません。 正規表現を使用している間 またはのような方法 lastIndexOf()の指標()、 文字列のセグメントを検索し、一致が識別されたら値を返すことができます。正規表現を使用して、さまざまな文字列をトリミングおよび分割し、それらを個別に使用して、任意のプログラムで幅広い用途に使用することもできます。

文字列はどのようにメモリに保存されますか?

Javaの文字列が他とは異なり、有益である理由がわかったところで、Stringクラスについて見ていきましょう。 Javaでのメモリ管理について知っている場合は、ヒープとスタックという2つの主要なエンティティを処理している必要があります。

スタックは、Javaプログラムによって呼び出された後、プロセスと操作を実行するために使用されますが、ヒープは、コードを効果的に実行および実行するために必要なコンテンツを格納します。では、文字列の場合、メモリ管理はどのように関連しているのでしょうか。

これは、JavaのStringクラスと文字列リテラルの扱いが異なるためです。これは、文字列リテラルに、文字列定数プールと呼ばれるヒープメモリ内の一意のストレージスペースが割り当てられていることを示します。したがって、文字列リテラルを使用してJavaで文字列オブジェクトを作成する場合は常に、文字列定数プールにそれらが格納されます。

それどころか、あなたが使用するとき 新着 キーワードで文字列オブジェクトを作成すると、Javaはそれらを他のオブジェクトと同じように扱い、ヒープに送信して保存します。

文字列リテラルの例

文字列オブジェクトについて十分に理解したところで、文字列リテラルの例を見てみましょう。


public class muostrings {
public static void main(String args[])
{
String himuo = 'Hello World from MUO';
System. out .println (himuo);
}
}

ここで、文字列リテラルは、MUOのHelloWorldコンテンツを含むStringオブジェクトを作成しました。 Javaはこのオブジェクトを文字列定数プールに送信します。

新しいキーワードの使用

また、使用することができます 新着 Stringオブジェクトを生成するためのキーワード。

MUOのHelloWorldを含む文字列himuoの文字列オブジェクトは、文字列リテラルによって生成され、文字列定数プールに送信されます。同様に、文字列オブジェクトは、次のようにnewキーワードを使用して作成することもできます。


public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}

上記の例では、 新着 文字列オブジェクトを作成するためのキーワード。前に説明したように、それらはヒープに送信され、プログラムによって実行されるのを待っている他の変数やオブジェクトとともに格納されます。

ここまでで、文字列定数プールに興味があるはずです。当然のことながらそうです。文字列オブジェクトの内容に基づいて、プールスペースをオブジェクトに割り当てます。文字列定数プールはオブジェクトを受信した後、それらをチェックして、2つのオブジェクトにまったく同じコンテンツが含まれているかどうかを確認します。

2つの文字列オブジェクトに同じコンテンツを保存できますか?

文字列リテラルを使用して新しいオブジェクトを作成すると、Java仮想マシン(JVM)がオブジェクトの内容を確認し、それがプールにすでに存在するかどうかを評価します。オブジェクトにプールにすでに存在するコンテンツが含まれている場合、新しいオブジェクトを作成せずにオブジェクトの参照が返されます。新しいオブジェクトを作成する必要がある場合は、コンテンツが明確で一意であることを確認する必要があります。

ただし、 新着 キーワードを使用して新しい文字列を作成すると、処理が異なります。あなたが使用するとき 新着 キーワードを使用して新しい文字列を作成すると、既存の文字列と同じ内容が含まれているかどうかに関係なく、文字列が生成されます。

これは、ヒープメモリに格納されている2つの既存の文字列オブジェクトが同じ内容を伴うことが許可されていることを示しています。これは、文字列定数プールに格納されている文字列オブジェクトとは異なります。 ==演算子を使用してこれを証明することもできます。同じ物理アドレスを持つ2つのオブジェクトが比較される場合、trueを返します。


public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = 'muo1';
String secondLiteral = 'muo1';
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String('muo2');
String secondKeyword = new String('muo2');
System. out .println(firstKeyword == secondKeyword);
}
}

これで、Javaの文字列を簡単に理解できます

この記事では、Javaでの文字列の違い、Javaでの文字列の使用方法、Javaでの文字列のメモリ管理、および文字列の動作に関するその他の重要な詳細について学習しました。理解度をテストするために、2つの文字列を連結するJavaプログラムを作成してみませんか?

共有 共有 つぶやき Eメール Pythonを学ぶ?文字列を操作する方法は次のとおりです

Pythonで文字列を使用および操作することは難しいように見えるかもしれませんが、それは一見簡単です。

次を読む
関連トピック
  • プログラミング
  • Java
著者について ウスマン・ガニー(4件の記事が公開されました)

Usmanは、デジタルプラットフォームでの有機的な成長でいくつかのビジネスを支援してきたコンテンツマーケティング担当者です。彼はプログラミングとライティングの両方が好きです。つまり、テクニカルライティングは彼がとても楽しんでいるものです。仕事をしていないとき、Usmanはテレビ番組を見たり、クリケットをフォローしたり、データ分析について読んだりするのを楽しんでいます。

UsmanGhaniのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください