【问题标题】:text file to array of lose words (strings)文本文件到丢失单词(字符串)的数组
【发布时间】:2015-12-28 20:20:24
【问题描述】:

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

我尝试了以下方法,但它似乎不起作用..我不明白为什么。

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 媒体。 Conservatieve partijen haalden onlangs bij de verkiezingen de absolute meerderheid in het parlement。 Zij hebben 在 het parlement wetsvoorstellen ingediend voor de hervorming van het contrastele 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 rechtsstaat。 Toetsing In de brief vroeg Europees Vice-voorzitter Frans Timmermans de Poolse Senaat de wet niet aan te nemen of minstens te wachten met de uitvoering ervan tot alle kwesties in verband meet 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 die 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 week in meer dan twintig steden gedemonstreerd voor de democratie en tegen de conservatieve regering。在 de hoofdstad Warschau verzamelden de demostranten zich voor de parlementsgebouwen en scandeerden Nee tegen dictatuur。好吧,在柏林,伦敦 en Brussel waren kleine 示范 van Polen。=====

我想要:

数组["Dat====","melden====","Duitse===="]

等等

当文本被打印时,我只是再次得到文本...... 任何帮助将不胜感激

【问题讨论】:

  • 你的问题能说得清楚一点吗?你得到什么输出?你想得到什么?
  • 我希望这能让它更清楚

标签: arrays string text processing


【解决方案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找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    相关资源
    最近更新 更多