2011-02-07 4 views
1

2つの配列(文字列の)を文字列に出力するためにJavaのtoStringメソッドをオーバーライドしようとしています。私はちょうどJavaを手に入れようとしています。ドキュメントを見ても、このような構文がどのように表示されるべきかについてはまだ悩んでいます。誰かが私に見せたり、これを行う良い方法を説明できる例があれば、私は最も感謝しています。Javaの複数配列toString

+0

文字列の2つの配列を1つの文字列に処理したいとします。 {"This"、 "is"、 "a"} {"random"、 "sentence"}が "This/nis/na/nrandom/string"のような文字列になることを意味しますか?もしあなたが正確に何を望んでいるのか分からないでしょうか? –

答えて

6

あなたは、2つの配列を持つクラスを持っている、とあなたがこれらを表示するためにtoStringメソッドをオーバーライドしたい場合:ここで

@Override 
public String toString() { 
    return Arrays.toString(array1) + " " + Arrays.toString(array2); 
} 

は完全な例である:

import java.util.Arrays; 

public class Test { 

    int[] array1 = { 1, 2, 3 }; 
    String[] array2 = { "Hello", "World" }; 

    @Override 
    public String toString() { 
     return Arrays.toString(array1) + " " + Arrays.toString(array2); 
    } 

    public static void main(String[] args) { 
     System.out.println(new Test()); 
    } 
} 

出力:


ここで

改行とバージョンです:

public class Test { 

    int[] array1 = { 1, 2, 3 }; 
    String[] array2 = { "Hello", "World" }; 

    @Override 
    public String toString() { 
     StringBuilder sb = new StringBuilder(); 
     sb.append("array1:\n"); 
     for (int i : array1) 
      sb.append(" ").append(i).append('\n'); 

     sb.append("\narray2:\n"); 
     for (String s : array2) 
      sb.append(" ").append(s).append('\n'); 

     return sb.toString(); 
    } 

    public static void main(String[] args) { 
     System.out.println(new Test()); 
    } 
} 

出力:

array1: 
    1 
    2 
    3 

array2: 
    Hello 
    World 
+0

これはまさに私が探していた例のようです。私はあなたにそれがどうなるかを知らせます:Dもう一度感謝します。 – user319940

+0

これがあなたの質問に対してうまくいくと思われる場合は、答えを正しいものとしてマークするとよいでしょう。 –

+0

一度試してみる。 – user319940

0

それはObjectから継承されていますので、あなたは新しいクラスを作成する必要があり、それはdoesnのtoString上書きします2つの引数を取る場合、2つの配列文字列を持つクラスを作成すると、これを確実に行うことができます。