2012-01-31 67 views
0

我正在向一個向量存儲一些簡單的字符串,並且我想在一個新行上打印每個值,我不知道該怎麼做。我也想知道是否可以刪除括號和逗號java放入之後它打印矢量?我知道我需要一個toString()方法,我不知道如何編寫它。簡單的toString()方法

這裏是現在這樣:

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

如果可能的話,我想它打印:

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

你使用Vector的任何原因?我不會使用這個,除非你使用多個線程。 – 2012-01-31 06:24:03

+0

是的,我實際上是在命令行中製作一個簡單的多線程聊天服務器。 – user1174834 2012-01-31 06:29:58

回答

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

} 
2

假設你的矢量持有字符串類型的元素:

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

爲什麼認爲它的字符串 – 2012-01-31 06:27:04

+0

因爲OP寫道:「我正在存儲一些簡單的字符串到一個向量...」 – Dawood 2012-01-31 06:27:54

+0

你是對的,它是一個向量 user1174834 2012-01-31 06:35:10

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

爲什麼不在這種情況下只使用通配符? – 2012-01-31 06:28:26

+0

@DD。你是對的。固定。但是,Java編譯器仍然允許調用者寫入'String s = listStringByLines(lst)'而不明確指定類型。 – 2012-01-31 06:30:12

+0

如果你想獨立於平臺,你應該使用'System.getProperty(「line.separator」)'而不是'「\ n」'。 – yshavit 2012-01-31 06:50:10