我正在尝试在 Processing 中用逗号替换冒号和空格

I'm trying to replace the colons and spaces with commas in Processing

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

  }

}

您的代码试图在数组上调用 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(" ", ",");
}

但是此代码并不比第一个选项快,所以实际上您应该坚持使用您最了解的任何代码。

添加到 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];
}