Hallo
Auch wenn der Titel so klingt, lässt sich die Frage nicht mit: Such mal nach Explode() lösen.
Ich will auf mac Os x Konsolenergebnisse auslesen und aufarbeiten.
Wenn ich mir die prozesse hole, bekomme ich einen solchen String:
''root 41 0.0 0.1 27592 508 ?? Ss 9:54AM 0:00.87 /usr/sbin/''
Ich will die einzelnen Strings trennen, da sie aber mit variabel vielen Leerzeichen getrennt sind, und im letzten Teil auch Leerzeichen erlaubt sind, muss ich mir selbst etwas bauen.
Das Ganze sieht bis jetzt so aus:
Die Idee ist die, dass ich durch das Array gehe und sobald ich auf leerzeichen treffe, die nächsten nicht-leeren Strings dann in die nächste schublade packe, bis ich die ersten acht voll habe, ins letzte packe in dann den Rest.
Dieser Vergleich mit dem charArray mit nur einem element ist wahrlich hässlich, aber da ich noch nicht lange mit Java arbeite, weiss ichs noch nicht besser.
Wenn ich mir jetzt die Ausgabe per getName anschaue, sieht die so aus:
XXXnullrootXXXnull42XXXnull0.0
also ziemlich genau, dass was ich haben will, nur diese 'null' stören mich gewaltig und ich habe keine Ahnung, wo sie herkommen. Wär nett, wenn da mal jemand drüberschauen könnte.
Nikolas
Auch wenn der Titel so klingt, lässt sich die Frage nicht mit: Such mal nach Explode() lösen.
Ich will auf mac Os x Konsolenergebnisse auslesen und aufarbeiten.
Wenn ich mir die prozesse hole, bekomme ich einen solchen String:
''root 41 0.0 0.1 27592 508 ?? Ss 9:54AM 0:00.87 /usr/sbin/''
Ich will die einzelnen Strings trennen, da sie aber mit variabel vielen Leerzeichen getrennt sind, und im letzten Teil auch Leerzeichen erlaubt sind, muss ich mir selbst etwas bauen.
Das Ganze sieht bis jetzt so aus:
Die Idee ist die, dass ich durch das Array gehe und sobald ich auf leerzeichen treffe, die nächsten nicht-leeren Strings dann in die nächste schublade packe, bis ich die ersten acht voll habe, ins letzte packe in dann den Rest.
Code:
public class taskInfo {
public String[] values = new String[10];
public taskInfo(String str) {
// Der String aus der Konsole wird zerpflückt:
int cnt=0;
boolean lzFound = false; // wahr, wenn das letzte Zeichen ein Leerzeichen war
char[] list = str.toCharArray();
// HACK
String lz =" ";
char[] lzchar = lz.toCharArray();
// HACK
for (int i=0; i<list.length; i++) {
// System.out.println(cnt);
if (cnt<9) {
if (list[i]==lzchar[0]) { // Es wurde ein Leerzeichen gefunden
if (!lzFound) {
cnt++;
// values[cnt]="A";
lzFound=true;
}
} else {
// es wurde kein Leerzeichen gefunden:
lzFound=false;
values[cnt]+=list[i];
}
} else {
// hier kommt noch der ProgrammName, der Leerzeichen haben darf
values[cnt]+=list[i];
}
} // Schleife über Buchstaben
}
public String getName() {
String str="";
for (int i=0; i<3;i++) {
str+="XXX"+values[i];
}
return str;
}
Wenn ich mir jetzt die Ausgabe per getName anschaue, sieht die so aus:
XXXnullrootXXXnull42XXXnull0.0
also ziemlich genau, dass was ich haben will, nur diese 'null' stören mich gewaltig und ich habe keine Ahnung, wo sie herkommen. Wär nett, wenn da mal jemand drüberschauen könnte.
Nikolas