2012-01-31 18 views
0

私はいくつかの単純な文字列をベクトルに保存しています。新しい行に各値を出力したいのですが、どうすればよいか分かりません。私はまたそれがベクトルを印刷した後にブラケットとコンマjava putsを取り除くことが可能かどうか疑問に思っていますか?私はtoString()メソッドが必要であることを知っている、私はそれを書く方法がわからない。ここで単純なtoString()メソッド

は今何をするかです:

[Bob: Hello World, Bob: How are you?, Bob: I'm Good] 

可能であれば、私は印刷にそれを希望:

Bob: Hello 
Bob: How are you? 
Bob: I'm Good 
+0

ベクターを使用している理由はありますか?私はあなたが複数のスレッドを使用していない限り、これを使用しません。 –

+0

さて、私は実際には単純なマルチスレッドチャットサーバーをコマンドラインで作っています。 – user1174834

答えて

1
public void printVector(Vector<?> vector){ 
    for (Object o : vector) { 
     System.out.println(o.toString()); 
    } 

} 
2

あなたのベクトルは、String型の要素を保持していると仮定すると:

Vector<String> yourVector = ...; 
for (String line : yourVector) { 
    System.out.println(line); 
} 
+1

なぜそれがその文字列であると仮定するか –

+0

OPは次のよ​​うに書いています。 "私はいくつかの単純な文字列をベクトルに格納しています..." – Dawood

+0

あなたは正しいです、ベクトルです user1174834

1

あなたはそれを自分で行う必要があります:

for (String string : stringVec) { 
    System.out.println(string); 
} 
5

このコードは、それ

public static String listStringByLines(Iterable<?> lst) { 
    StringBuilder builder = new StringBuilder(); 
    for (Object elem: lst) { 
     builder.append(elem.toString()); 
     builder.append("\n"); 
    } 
    return builder.toString(); 
} 

これは列挙オブジェクトとジェネリック型パラメータの多くの異なる種類のために再利用可能であるという利点を持って行う必要があります。

+1

この場合、ワイルドカード汎用を使用するだけではどうですか? –

+0

@DD。あなたは正しいです。一定。しかし、Javaコンパイラは依然として、タイプを明示的に指定せずに 'String s = listStringByLines(lst)'と書くことができます。 –

+0

プラットフォームに依存しないようにするには、 '' \ n "'の代わりに '' System.getProperty( "line.separator") 'を使うべきです。 – yshavit