Javaで文字配列を文字列に変換する

1。概要

この簡単なチュートリアルでは、我々はに文字列を変換するための様々な方法取り上げる文字列Javaでを。

2.文字列コンストラクタ

文字列クラスがあり受け取るコンストラクタchar型の引数として配列を:

@Test public void whenStringConstructor_thenOK() { final char[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; String string = new String(charArray); assertThat(string, is("baeldung")); }

これは、char配列をStringに変換する最も簡単な方法の1つです。String#valueOfを内部的に呼び出して、Stringオブジェクトを作成します。

3. String.valueOf()

そしてvalueOf()について言えば、直接使用することもできます。

@Test public void whenStringValueOf_thenOK() { final char[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; String string = String.valueOf(charArray); assertThat(string, is("baeldung")); }

String#copyValueOfは、valueOf()メソッドと意味的に同等であるが、最初のいくつかのJavaリリースでのみ重要であった別のメソッドです。今日の時点で、copyValueOf()メソッドは冗長であり、我々はそれを使用することはお勧めしません。

4. StringBuildertoString()

char配列の配列から文字列を形成したい場合はどうなりますか?

次に、最初にStringBuilderインスタンスをインスタンス化し、そのappend(char [])メソッドを使用してすべてのコンテンツを一緒に追加できます。

後で、toString()メソッドを使用して文字列表現を取得します。

@Test public void whenStringBuilder_thenOK() { final char[][] arrayOfCharArray = { { 'b', 'a' }, { 'e', 'l', 'd', 'u' }, { 'n', 'g' } }; StringBuilder sb = new StringBuilder(); for (char[] subArray : arrayOfCharArray) { sb.append(subArray); } assertThat(sb.toString(), is("baeldung")); }

必要な正確な長さのStringBuilderをインスタンス化することで、上記のコードをさらに最適化できます。

5. Java8ストリーム

Arrays.stream(T []オブジェクト)方法、我々は、タイプのアレイ上ストリームを開くことができT

Character配列があることを考えるとCollectors.joining()操作を使用してStringインスタンスを形成できます。

@Test public void whenStreamCollectors_thenOK() { final Character[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; Stream charStream = Arrays.stream(charArray); String string = charStream.map(String::valueOf).collect(Collectors.joining()); assertThat(string, is("baeldung")); }

このアプローチの注意点は、各Character要素に対してvalueOf()を呼び出すため、かなり遅くなることです。

6.グアバコモンベースジョイナー

ただし、作成する必要のある文字列は区切り文字列であるとしましょう。Guavaは私たちに便利な方法を提供します:

@Test public void whenGuavaCommonBaseJoiners_thenOK() { final Character[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' }; String string = Joiner.on("|").join(charArray); assertThat(string, is("b|a|e|l|d|u|n|g")); }

繰り返しになりますがjoin()メソッドはCharacter配列のみを受け入れ、プリミティブchar配列受け入れないことに注意しください

7.結論

このチュートリアルでは、特定の文字配列をJavaで文字列表現に変換する方法について説明しました。

いつものように、すべてのコード例はGitHubにあります。