2015-12-28 55 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

相關問題