Strings 初級

文字列の文字をストリームとして処理

文字列の文字をストリームパイプラインとして処理する。

✕ Java 8
for (int i = 0; i < str.length(); i++) {
    char c = str.charAt(i);
    if (Character.isDigit(c)) {
        process(c);
    }
}
✓ Java 9+
str.chars()
    .filter(Character::isDigit)
    .forEach(c -> process((char) c));
このコードに問題がありますか? お知らせください。
🔗

チェーン可能

文字ストリームにfilter・map・collectが使えます。

📐

宣言的

ループの方法ではなく、何をするかを記述します。

🌐

Unicode対応

codePoints()は絵文字や補助文字を正しく処理します。

旧来のアプローチ
手動ループ
モダンなアプローチ
chars()ストリーム
JDKバージョン
9
難易度
初級
文字列の文字をストリームとして処理
利用可能

JDK 8以降(JDK 9以降で改善)、利用可能

String.chars()は文字値のIntStreamを返し、関数型処理が可能になります。Unicode対応が必要な場合はcodePoints()が補助文字を正しく処理します。

共有 𝕏 🦋 in