我正在尝试用处理

时间:2016-09-17 02:04:16

标签: java processing replaceall

我对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(" ", ",");     

  }

}

2 个答案:

答案 0 :(得分: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(" ", ",");
}

但是这段代码并不比第一个选项快,所以你应该坚持使用你最了解的代码。

答案 1 :(得分: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];
}