開発者ドキュメント

java-char-array-to-string

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

1. 概要

このクイックチュートリアルでは、Javaで文字配列を_String_に変換するさまざまな方法について説明します。

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

_String_クラスには、引数として_char_配列を受け入れる* constructorがあります:*
@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. StringBuilder’s toString()

_char_配列の配列から_String_を形成したい場合はどうなりますか?
次に、最初に_StringBuilder_インスタンスをインスタンス化し、その_append(char [])_メソッドを使用してすべてのコンテンツを一緒に追加します。
後で、__ toString()__メソッドを使用して_String_表現を取得します。
@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. Java 8ストリーム

_Arrays.stream(T [] object)_メソッドを使用すると、タイプ_T_の配列でストリームを開くことができます。
_Character_配列があることを考慮すると、* _ Collectors.joining()_操作を使用して_String_インスタンスを形成できます:*
@Test
public void whenStreamCollectors_thenOK() {
    final Character[] charArray = { 'b', 'a', 'e', 'l', 'd', 'u', 'n', 'g' };
    Stream<Character> charStream = Arrays.stream(charArray);
    String string = charStream.map(String::valueOf).collect(Collectors.joining());
    assertThat(string, is("baeldung"));
}
このアプローチの注意点は、各_Character_要素で_valueOf()_を呼び出しているため、かなり遅いことです。

6. グアバ共通基地_Joiner_

ただし、作成する必要がある文字列は区切り文字列であるとしましょう。 グアバには便利な方法があります:
@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の_String_表現に変換する方法を検討しました。
いつものように、すべてのコード例はhttps://github.com/eugenp/tutorials/tree/master/java-strings-3[GitHubで]にあります。
モバイルバージョンを終了