2016-09-17 3 views
0

zu ersetzen Ich bin ziemlich neu in Verarbeitung und Java, so ist dies wahrscheinlich ziemlich einfach. Hab Nachsicht. Es rutscht nur über meinen Kopf. Dies ist der Code Ich habeIch versuche, die Doppelpunkte und Leerzeichen durch Kommas in Verarbeitung

Die txt-Datei aus Ich ziehe besteht aus Zahlen wie folgt aus:

1: 100

2: 200

3: 300 usw.

void setup() { 

    size(200,200); 

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

    lines = lines.replaceAll(":", ",");  
    lines = lines.replaceAll(" ", ",");  

    } 

} 
+0

'replaceAll (": "," ")' ersetzt alle Doppelpunkte durch Leerzeichen. Ändern Sie es in 'replaceAll (": ",", "). ReplaceAll (" ",", ")', um Doppelpunkte durch Kommas und Leerzeichen durch Kommas zu ersetzen. – Vineet

Antwort

0

Hinzufügen zu Kevins Antwort für das Ersetzen neuer Zeilenzeichen. replace funktioniert nicht, da Sie die neuen Zeilenzeichen bereits analysiert haben, während Sie die Datei in einem Array von Zeichenfolgen analysieren.

Sie sollten die Zeichenfolgen nach dem Ersetzen anhängen. Etwas wie dieses:

String fileString = ""; 
for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ","); 
    lines[i] = lines[i].replace(" ", ","); 
    fileString += lines[i]; 
} 
1

Ihr Code versucht replaceAll() auf dem Array aufzurufen, was nicht funktioniert. Sie müssen das Array durchlaufen und für jeden Index aufrufen. Beachten Sie auch, dass replaceAll() reguläre Ausdrücke verwendet, was für Ihre Zwecke übertrieben ist. Ich würde stattdessen replace() verwenden. Weitere Informationen finden Sie in the Java API.

Also, was Sie beschreiben, ist in drei Schritten:

Schritt 1: Schleife durch jede String im Array.

Schritt 2: Ersetzen Sie die Doppelpunkte durch Kommas.

Schritt 3: Ersetzen Sie die Leerzeichen durch Kommas.

setzen sie alle zusammen, es sieht wie folgt aus:

for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ",").replace(" ", ","); 
} 

Aber dieser Code:

for(int i = 0; i < lines.length; i++){ 
    lines[i] = lines[i].replace(":", ","); 
    lines[i] = lines[i].replace(" ", ","); 
} 

Sie, dass replace() anrufen aus dem ersten Aufruf von replace() direkt zurück auf den Wert verkürzen konnte ist nicht schneller als die erste Option, also sollten Sie wirklich mit dem Code bleiben, den Sie am besten verstehen.

+0

Danke, jetzt versuche ich eine neue Zeile durch ein "," zu ersetzen, aber Zeilen [j] = Zeilen [j] .replace ("\ n", ""); wird nicht funktionieren. –

+0

@CanoBriseno Die 'loadStrings()' -Funktion löscht bereits neue Zeilenzeichen - damit weiß sie, wo jeder Index enden soll. Was genau versuchst du zu tun? –

Verwandte Themen