Java で文字列の文字列を反復処理する
-
Java 8 で
String.chars()
を使って文字列内のすべての文字を反復処理する -
Java 8 で
String.codePoints()
を用いて文字列中のすべての文字をループさせる方法 -
String.toCharArray()
を使用すると、Java で文字列内のすべての文字をループさせることができる -
StringCharacterIterator
を使って Java の文字列内のすべての文字を反復処理する -
Java で
String.split()
を使用して文字列内のすべての文字をループする
この記事では、Java で文字列内のすべての文字を反復処理するための様々な方法を紹介します。
Java 8 で String.chars()
を使って文字列内のすべての文字を反復処理する
Java 8 では、新しいメソッド String.chars()
を提供しており、これは IntStream
を返します。返された IntStream
には、文字列内の文字の整数表現が含まれています。ここでは myString.chars()
から stream1
を取得しています。
戻り値の IntStream
をオブジェクトにマップします。stream1.mapToObj()
は整数値をそれぞれの文字に変換します。しかし、文字を表示したり読んだりするためには、ユーザーフレンドリーな文字形式に変換する必要があります。
import java.util.stream.IntStream;
public class ForEachChar {
public static void main(String[] args) {
String myString = "Hello There!";
String myString2 = "My Friends";
String myString3 = "Happy Coding";
IntStream stream1 = myString.chars();
IntStream stream2 = myString2.chars();
IntStream stream3 = myString3.chars();
stream1.mapToObj(Character::toChars).forEach(System.out::print);
System.out.println("");
stream2.mapToObj(i -> new Character((char) i)).forEach(System.out::print);
System.out.println("");
stream3.forEach(i -> System.out.print(Character.toChars(i)));
}
}
出力:
Hello There!
My Friends
Happy Coding
Java 8 で String.codePoints()
を用いて文字列中のすべての文字をループさせる方法
Java 8 String.codePoints()
は、このシーケンスから Unicode コードポイントの IntStream
を返します。これは渡された文字の ASCII
値を返します。
返された IntStream
をオブジェクトにマッピングするには、stream.mapToObj
を用いれば、自動的に Stream<Character>
に変換されます。メソッド参照を利用して、指定された文字列の各文字を表示します。
import java.util.stream.IntStream;
public class ForEachChar {
public static void main(String[] args) {
String myString = "Happy Coding";
IntStream stream = myString.codePoints();
stream.mapToObj(Character::toChars).forEach(System.out::print);
}
}
出力:
Happy Coding
String.toCharArray()
を使用すると、Java で文字列内のすべての文字をループさせることができる
String.toCharArray()
メソッドは、与えられた文字列を文字列に変換します。これは文字列の長さと同じ長さの Character
配列を返します。
文字列中のすべての文字を繰り返し処理するには、toCharArray()
を用いて各文字を表示することができます。
public class ForEachChar {
public static void main(String[] args) {
String myString = "Hello Friends";
char[] chars = myString.toCharArray();
int len = chars.length;
System.out.println("length of the char array: " + len);
for (char ch : chars) {
System.out.println(ch);
}
}
}
出力:
length of the char array: 13
H
e
l
l
o
F
r
i
e
n
d
s
StringCharacterIterator
を使って Java の文字列内のすべての文字を反復処理する
StringCharacterIterator
クラスは文字列の双方向の反復処理を実装しています。文字列をパラメータとして受け取り、初期インデックスが 0 のイテレータを構築します。
このイテレータは現在の位置にある文字を返すか、現在の位置がテキストの終わりの場合は DONE
を返します。
it
の next()
メソッドは新しい位置にある文字を返すか、新しい位置がテキストの終わりであれば DONE
を返します。
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
public class ForEachChar {
public static void main(String[] args) {
String myString = "Hello Friends";
CharacterIterator it = new StringCharacterIterator(myString);
while (it.current() != CharacterIterator.DONE) {
System.out.print(it.current());
it.next();
}
}
}
出力:
Hello Friends
Java で String.split()
を使用して文字列内のすべての文字をループする
String.split()
メソッドは、与えられた正規表現に対して文字列を分割し、新しい配列を返します。
以下のコードでは、myString.split("")
を用いて文字列を分割しています。これで、str_arr
内のすべての文字を反復処理して表示することができます。
public class ForEachChar {
public static void main(String[] args) {
String myString = "Hello Friends";
String[] str_arr = myString.split("");
for (String ch : str_arr) {
System.out.print(ch);
}
}
}
出力:
Hello Friends
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn関連記事 - Java String
- Java で 16 進文字列のバイト配列を変換する方法
- Java で文字列から部分文字列を削除する方法
- Java で文字列から文字列配列への変換を実行する方法
- Java 文字列をバイトに変換する方法
- Java でランダムな文字列を生成する
- Java のスワップメソッド