4 Stimmen

Wie kann ich in Java ganze Zahlen aus einer Zeichenkette parsen?

Ich muss aus einer Zeichenkette den Zähler und den Nenner in zwei Variablen vom Typ int abrufen. Das könnte sein: "1/-2", "4 /0", "-2/ 1234", oder " 5" (in diesem Fall ist der Nenner 1);

Zwischen den ganzen Zahlen und "/" können Leerzeichen stehen, innerhalb einer ganzen Zahl gibt es keine Leerzeichen. Es kann auch nur eine ganze Zahl in der Zeichenkette enthalten sein und kein "/".

Irgendwelche Ideen? Danke!

Hallo, ich habe die Antworten von euch kombiniert, und es funktioniert! Danke!

s ist die Zeichenkette

s = s.trim();
String[] tokens = s.split("[ /]+");
int inputNumerator = Integer.parseInt(tokens[0]);
int inputDenominator = 1;
if (tokens.length != 1)
    inputDenominator = Integer.parseInt(tokens[1]);

7voto

Daniel Lubarov Punkte 7644
String[] parts = s.split(" */ *");
int num = Integer.parseInt(parts[0]),
    den = Integer.parseInt(parts[1]);

3voto

Trennen Sie die Zeichenfolge mit '/' als Trennzeichen und entfernen Sie dann alle Leerzeichen. Danach verwenden Sie Integer.parseInt();
Um Leerzeichen gut zu entfernen, können Sie versuchen, das letzte Zeichen der ersten Zeichenkette und das erste Zeichen der zweiten Zeichenkette zu überprüfen, sie mit ' ' zu vergleichen und sie bei Übereinstimmung zu entfernen.

0voto

arvind_cool Punkte 293

0voto

Ich hoffe, das hilft..,

StringTokenizer st= new StringTokenizer(s, "/");   
int inputDenominator,inputNumerator;

if(st.hasMoreTokens()) 
{
String string1= st.nextToken();
string1=string1.trim();
inputNumerator = Integer.parseInt(string1);
}

if(st.hasMoreTokens()) 
{
String string2= st.nextToken();
string2=string2.trim();
inputDenominator = Integer.parseInt(string2);
} 
else{
inputDenominator=1; 
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X