🐛

Javaの文字列と文字列メソッドをまとめました。

2023/10/03に公開

最初に

Javaの文字列を復習したくて一度まとめました。また、よく使うStringメソッドもまとめて整理しました。文字列やStringメソッドを復習したい人は読んでみてください。

文字列

文字列とは、次のように文字で構成された文章を意味します。

"Hello World"  
"abc"  
"a"
"123456789"

次のように表現することもできます。

CopyString a =newString("Happy Java");
String b =newString("a");
String c =newString("123");

文字列を表現する際には、なるべく最初の方式、すなわちリテラール表記方式を使用した方がいいです。

リテラル表記は可読性が良くてコンパイルする時に最適化に役立つためです。

int、long、double、float、boolean、char資料型をプリミティブ型といいます。 このようなプリミティブ型はnewキーワードでは値を生成できないです。 プリミティブ型は、次のリテラル表記方式でのみ値をセットできます。

boolean result = true;
char a = 'A';
int i = 100000;

必ず覚えておくことが一つあります。

String はリテラル表記方式を使用できるが、プリミティブ型に含まれないです。
Stringはリテラル表記方式を使用できるようにJavaで特別待遇する資料型です。

文字列メソッド

String資料型の内蔵メソッドの中でよく使うものをみます。 String資料型の内蔵メソッドは文字列オブジェクトに属する関数といえる。 文字列合置、分割、大文字変換などの文字列を多様に活用できます。

equals

equalsメソッドは文字列2つが同じかどうかを比較して結果値をリターンする。

String a = "hello";
String b = "world";
String c = "hello";
System.out.println(a.equals(b)); // false 
System.out.println(a.equals(c)); // true 

出力

false
true

文字列a と文字列b には hello と java がそれぞれ保存されているので、値が互いに同じではないです。 したがって、equalsメソッドを呼び出すと、falseをリターンします。

しかし、文字列aと文字列cはhelloとhelloで値が同じなのでtrueをリターンします。

このように文字列の値を比較する時は必ずequalsを使わなければならないです。 もし、equalsの代わりに==演算子を使用すると、次のような結果が発生します。

String a = "hello";
String b = new String("hello");
System.out.println(a.equals(b)); // true
System.out.println(a == b); // false

出力

true
false

文字列aとbはいずれもhelloで値が同じだが、equalsを呼び出すとtrueを、==演算子を使えばfalseをリターンする。

aとbは値は同じだが、互いに異なるオブジェクトであるためだ。 ==は2つの資料型が同じオブジェクトであるかを判別する際に使用する演算子なのでfalseをリターンする。

indexOf

index Of は、文字列から特定の文字列が始まる位置(インデックス値)をリターンします。

文字列aでJavaが始まる位置を知りたいなら、index Ofを使って次のように位置をリターンしてもらうことができます。

String a = "Hello world";
System.out.println(a.indexOf("world")); // 6

出力

6

contains

containsメソッドは、文字列に特定の文字列が含まれているかどうかをリターンします。

String a = "Hello Java";
System.out.println(a.contains("Java")); // true

出力

true

文字列aはJavaという文字列を含んでいてtrueをリターンします。

charAt

charAtメソッドは文字列から特定の位置の文字をリターンします。
Hello World文字列でwは6番目のインデックスに位置する文字です。
インデックス6で文字Jをリターンしてもらうには、charAtを使います。

String a = "Hello Java";
System.out.println(a.charAt(6)); // "J"

出力

J

replaceAll

replace Allメソッドは、文字列から特定の文字列を別の文字列に変える時に使用します。

Hello World文字列でWorldをChanceに変えます。

String a = "Hello World";
System.out.println(a.replaceAll("World", "Chance")); // Hello Chance

出力

Hello Chance

substring

substringメソッドは、文字列から特定の文字列を抽出するときに使用すします。

String a = "Hello World";
System.out.println(a.substring(0, 4)); // Hell

出力

Hell

上記のようにsubstring(開始位置、終了位置)のようにコードを作成すると、文字列の開始位置から終了位置までの文字を抽出することになります。
ただし、最後の位置の文字は含まれないので注意してください。
数学の式に似ている。

開始位置 <= a < 終了位置

toUpperCase

toUpperCaseメソッドは文字列をすべて大文字に変更するときに使います。

String a = "Hello World";
System.out.println(a.toUpperCase());  // HELLO WORLD

出力

HELLO WORLD

split

splitメソッドは文字列を特定の区切り文字に分けて文字列配列にリターンする。

String x = "a:b:c:d";
String[] result = a.split(":");  // {"a", "b", "c", "d"}

例のようにa:b:c:d という文字列を:(コロン)で割って{"a", "b", "c", "d"}文字列配列を作ることができます。

Discussion