Ich schrieb dieses einfache Programm, das eine gegebene Eingabe bei jedem Nicht-Digit-Zeichen aufteilt. DieseString Splitting falscher Ausgang
public class Fileread {
public static void main(String[] args) throws IOException {
//Declarations
String[] temp;
String current;
//Execution
BufferedReader br = new BufferedReader(new FileReader("input.txt"));
while ((current = br.readLine()) != null) {
temp = current.split("\\D"); //Splitting at Non Digits
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i]);
}
}
}
}
ist die input.txt:
hello1world2
world3
end4of5world6
Ausgang:
1
2
3
4
5
6
Warum haben so viele zusätzliche Leerzeichen erscheinen? Ich muss jede Nummer in einer separaten Zeile ohne Zwischenräume drucken. Wie kann ich das beheben?
Verwenden '\\ D +' Muster. Ein führendes leeres Element kann jedoch weiterhin beibehalten werden, wenn Ihre Strings mit Nicht-Ziffern beginnen. –