hoi ,
ich habe einen Arithmetischen ausdruck, in einer Textdatei in einer Zeile stehen, und den lese ich ein ins Programm z.B.
zeile = "aa + bb + cc"
ich habe versucht die einzelnen Wörter in der Zeile zu trennen und an eine Methode zu übergeben, funktioniert auch wie es soll , allerdings am ende wenn kein Leerzeichen mehr kommt wirft er eine Fehlermeldung aus , habe diese Methode :
public void arithmAusdruck(String line)
{
String wert;
int pos;
while (line!= null)
{
line = line.trim();
pos = line.indexOf(" ");
wert = line.substring(0,pos);
exprTree.insertQueue(wert);
line = line.substring(line.indexOf(" "));
}
}
am Ende steht dann nur noch "cc" und es folgt kein Leerzeichen mehr, also ist pos = -1 und bei wert = line.substring(0,pos); wirft er dann eine IndexOutOfBoundsException...
wie kann man das anders lösen sodass er am Ende nur noch den Wert einliest und falls kein leerzeichen mehr kommt dieses ignoriert?
ich habe einen Arithmetischen ausdruck, in einer Textdatei in einer Zeile stehen, und den lese ich ein ins Programm z.B.
zeile = "aa + bb + cc"
ich habe versucht die einzelnen Wörter in der Zeile zu trennen und an eine Methode zu übergeben, funktioniert auch wie es soll , allerdings am ende wenn kein Leerzeichen mehr kommt wirft er eine Fehlermeldung aus , habe diese Methode :
public void arithmAusdruck(String line)
{
String wert;
int pos;
while (line!= null)
{
line = line.trim();
pos = line.indexOf(" ");
wert = line.substring(0,pos);
exprTree.insertQueue(wert);
line = line.substring(line.indexOf(" "));
}
}
am Ende steht dann nur noch "cc" und es folgt kein Leerzeichen mehr, also ist pos = -1 und bei wert = line.substring(0,pos); wirft er dann eine IndexOutOfBoundsException...
wie kann man das anders lösen sodass er am Ende nur noch den Wert einliest und falls kein leerzeichen mehr kommt dieses ignoriert?