2015-12-28 51 views
1

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

我尝试以下,但它似乎没有工作..,我不知道为什么。

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]+"====="); 
} 

} 

我得到这个:

逸melden Duitse媒体。 Conservatieve partijen haalden 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 rechtsstaat。 Tovesing在简短的vroeg欧洲副主席Frans Timmermans de Poolse Senaat de湿niet aan te te ne nem of minstens te wachten met de uitvoering ervan tot alle kinies in verband met de deve van de onafhankelijkheid en het function heren 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 me and 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。 OOK在Berlijn,隆登连接布鲁塞尔瓦伦克莱demonstraties面包车POLEN =====

,我想:

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

ANS等

当文本打印我只是再次得到文本... 任何帮助将大大appriciated

+0

你可以在你的问题更清楚吗?你得到什么输出?你想得到什么? –

+0

我希望这能让它更清晰 – FutureCake

回答

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找到。

+0

真棒! – FutureCake

相关问题