この投稿では、Javaでプリミティブ文字アレイから文字のストリームを作成する方法について説明します。

Javaは Stream, IntStream, LongStream、 と DoubleStream オブジェクトとプリミティブint、longおよびdouble型を介してストリームを取得するクラス。 Javaは、プリミティブcharのcharストリームを提供しません。したがって、応募できません Arrays.stream() 方法 char[] アレイ。しかし、私たちは得ることができます IntStream (intのストリーム)文字のストリームとそれを使用して生成 Stream<Characters>.

1.Stringオブジェクトを使用する

を取得するための簡単なソリューション IntStream を使用して文字の String.chars() 方法。取得後 IntStream 文字の、それをボックスに入れます Stream<Character> ラムダ式を使用してcharをキャストする i -> (char) i 中身 mapToObj() 方法。

ダウンロード  コードを実行する

出力:

[a, b, c, d]

2.使用する IntStream.range()

別の選択肢は取得することです IntStream インデックスの使用 IntStream.range() 方法。取得後 IntStream、ボックスに Stream<Character> ラムダ式を使用してcharをキャストする i -> chars[i] 中身 mapToObj() 方法。

ダウンロード  コードを実行する

出力:

[a, b, c, d]

3.使用する CharBuffer.wrap() 方法

プリミティブ文字アレイからIntStreamを作成する別のもっともらしい方法は、 CharBuffer。取得後 IntStream 文字の、それをボックスに入れます Stream<Character> ラムダ式を使用してcharをキャストする i -> (char) i 中身 mapToObj() 方法。

ダウンロード  コードを実行する

出力:

[a, b, c, d]

4.GuavaのCharsクラスを使用する

ここでのアイデアは、ボックス化された文字のリストを作成することです List<Character> と派生 Stream<Character> それから。あなたはGuavaを使うことができます Chars.asList() プリミティブ文字アレイを次のようにラップするメソッド List<Character> タイプ。

コードをダウンロード

出力:

[a, b, c, d]

5.StreamBuilderの使用

最後に、Stream Builderを作成して、それに文字を追加できます。次に、 build() 取得する方法 Stream<Character> それから。

ダウンロード  コードを実行する

出力:

[a, b, c, d]

これで、Javaのプリミティブ文字アレイから文字のストリームを作成できます。