2016-09-17 40 views
0

我對Processing和Java很新,所以這可能很簡單。只是忍耐和我在一起。它只是滑過我的頭。這是代碼我有我試圖在處理中用逗號替換冒號和空格

我是從拉txt文件由數字是這樣的:

1:100

2:200

3:300等

void setup() { 

    size(200,200); 

    String[] lines = loadStrings("WordFrequency.txt"); 

    lines = lines.replaceAll(":", ",");  
    lines = lines.replaceAll(" ", ",");  

    } 

} 
+0

'replaceAll(「:」,「」)'用空格替換所有冒號。將其更改爲replaceAll(「:」,「,」)。replaceAll(「」,「,」)'將冒號替換爲逗號,然後將空格替換爲逗號。 – Vineet

回答

0

添加到Kevin的替換新行字符的答案。 replace將不起作用,因爲在將文件解析爲字符串數組的同時,您已經解析了新的行字符。

您應該在替換後附加字符串。例如:

String fileString = ""; 
for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ","); 
    lines[i] = lines[i].replace(" ", ","); 
    fileString += lines[i]; 
} 
1

你的代碼試圖在數組上調用replaceAll(),這是行不通的。你必須迭代數組併爲每個索引調用它。還請注意,replaceAll()使用正則表達式,這是爲你的目的矯枉過正。我會用replace()代替。更多信息可在the Java API找到。

那麼,你所描述的是三個步驟:

第1步:循環遍歷數組中的每String

步驟2:用逗號替換冒號。

第3步:用逗號替換空格。

全部放在一起,它看起來像這樣:

for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ","); 
    lines[i] = lines[i].replace(" ", ","); 
} 

你可以縮短,要直接調用replace()從第一調用返回到replace()值:

for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ",").replace(" ", ","); 
} 

但是這個代碼並不比第一種選擇快,所以你應該堅持你最懂的任何代碼。

+0

謝謝,現在我試圖用「,」替換一個新行,但是 行[j] =行[j] .replace(「\ n」,「」); 將不起作用。 –

+0

@CanBriseno'loadStrings()'函數已經刪除了新的行字符 - 這就是它如何知道每個索引應該結束的地方。你究竟想要做什麼? –

相關問題