文本文件到丢失单词数组(字符串)

时间:2015-12-28 20:20:24

标签: arrays string text processing

我想将文本文件转换为字符串数组。每个字符串应该是文本的一个单词。 例: 你好,我是托马斯=> { “你好”, “我”, “上午”, “托马斯”}

我尝试了以下但它似乎没有工作..我不明白为什么。

String words[];
void setup() {
    size(200, 200);

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

    for (int i = 0; i < lines.length; i++) {

         words = split(lines[i],"\\s+");
         lines[i].toLowerCase();
    }

    for(int i = 0; i < words.length; i++){
         print(words[i]+"====="); 
}

}

我明白了:

Dat melden Duitse媒体。保存部分haijden onlangs bij de verkiezingen de absolute meerderheid in het parlement。 Zij hebben in het parlement wetsvoorstellen ingediend voor de hervorming van het constitutionele hof en de rechten van ambtenaren。在de praktijk zou dit volgens tegenstanders van de nieuwe wetten kunnen betekenen dat de regering niet meer gecontroleerd kan worden。 De Europese Commissie heeft Polen voor de kerstdagen in een brandbrief nog gewaarschuwd voor uitholling van de retstsstaat。 Toetsing In de vroeg Europees vice-voorzitter Frans Timmermans de Poolse Senaat de wet niet tean of minstens te wachten met de uitvoering ervan tot alle kwesties in verband met de impact van de onafhankelijkheid en het functioneren van het Hof volledig zijn onderzocht。 Polen heeft de Raad van Europa wel gevraagd de nieuwe wet te toetsen。 Maar总裁Duda heeft死于uitspraak dus niet afgewacht。 Lachertje De conservatieve meerderheid baart ook de Poolse oud-president en Nobelprijswinnaar Lech Walesa zorgen。 Hij riep vorige week op tot nieuwe verkiezingen in zijn land。 Hij stelt dat de huidige politieke situatie in zijn land de democratie ondermijnt en Polen het lachertje van Europa maakt。 Tienduizenden Polen hebben vorige周在meer dan twintig steden gedemonstreerd voor de democratie en tegen de conservatieve regering。在de hoofdstad Warschau verzamelden de demonstranten zich voor de parlementsgebouwen en scandeerden Nee tegen dictatuur。 Oli in Berlijn,Londen en Brussel waren kleine demonstraties van Polen。=====

我希望:

阵列[ “DAT ====”, “melden ====”, “Duitse ====”]

如此

打印文本时我只是再次收到文字... 任何帮助都会受到很大关注

1 个答案:

答案 0 :(得分:1)

你的代码没有多大意义。您正在读取文本文件中的行,然后将这些行中的每一行拆分为名为words的数组。但是你不断覆盖words变量,所以for循环只是将words设置为文件的最后一行。然后在原始行上调用toLowerCase(),但实际上并没有对该值执行任何操作。

您必须提前决定文件是包含多行还是仅包含一行。你似乎在混合两者的逻辑,这没有多大意义。然后,您必须将拆分值实际存储在某些内容中。

其次,split()函数不采用正则表达式,只需要一个字符。要么给它一个特定的字符,要么使用不同的方法来分割你的字符串值。

假设您的输入文件只有一行,您可以尝试这样的事情:

String words[];

void setup() {
  size(200, 200);

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

  //file only contains single line, so just get the first line
  words = split(lines[0], " ");

  for (int i = 0; i < words.length; i++) {
    print(words[i]+"=====");
  }
}

可以在the Processing reference找到更多信息。