Negative Zahl mit Klammern parsen [duplizieren]

7

Wie konvertiert man einen String "(123,456)" in -123456 (negative Zahl) in Java?

Beispiel:

(123,456) = -123456

123,456 = 123456

Ich habe die NumberFormat-Klasse verwendet, aber es werden nur positive Zahlen umgewandelt, die nicht mit negativen Zahlen arbeiten.

%Vor%

Ausgabe:

Nummer ist auf 123456 formatiert

Ich konnte deine Zeichenfolge nicht analysieren!

    
Sagar 11.04.2014, 13:46
quelle

11 Antworten

3

Sie könnten versuchen:

%Vor%

Es könnte jedoch eine bessere Lösung geben

    
TheWalkingCube 11.04.2014, 13:52
quelle
6

Einfacher Trick ohne benutzerdefinierte Analyselogik:

%Vor% Der Parameter

DecimalFormatSymbols kann weggelassen werden, wenn das aktuelle Gebietsschema zum Analysieren

verwendet werden soll     
Marek Gregor 11.04.2014 14:24
quelle
4

Nicht die gleiche API, aber einen Versuch wert

%Vor%

Ausgänge:

-1000001 und 1000001

    
DayaMoon 11.04.2014 14:14
quelle
2

Ich habe eine andere Lösung:

%Vor%

Es ist eine atypische Lösung, selbst wenn es einen doppelten Beitrag gibt, denke ich, dass diese Antwort es wert ist:)

    
Error418 11.04.2014 14:02
quelle
2

Das sollte funktionieren:

%Vor%

Ausgabe wird sein:

negativ: -123456
 positiv: 123456

    
DanW 11.04.2014 14:07
quelle
2

Hier versuche ich, die Zeichenfolge in Ganzzahl und dann zurück in Ganzzahl in Zeichenfolge zu ändern.

Doppelte Schrägstriche ('\\') werden verwendet, um das Sonderzeichen zu umgehen, wenn mehrere Vorkommen nützlich sind.

Hier ist der vollständige Code: Getestet und ausgeführt.

%Vor%

Jetzt sehen Sie die erwarteten Ergebnisse wie angegeben.

    
Sireesh Yarlagadda 11.04.2014 14:14
quelle
2
%Vor%     
user3524284 11.04.2014 15:54
quelle
1

Sie können es auf diese Weise versuchen:

%Vor%

AUSGABE:

%Vor%     
Harmlezz 11.04.2014 14:07
quelle
1

Wenn Sie sicher sind, dass nur Strings mit dem angegebenen Format angezeigt werden, ersetzen Sie einfach das führende "(" durch ein Minuszeichen und das letzte ")" durch nichts vor dem Analysieren wie in:

%Vor%     
cgogolin 11.04.2014 13:58
quelle
0

Sie könnten erreichen, was Sie brauchen mit:

%Vor%     
Ardi Goxhaj 11.04.2014 14:16
quelle
0

Versuchen Sie Folgendes:

%Vor%

Dies überprüft, ob die Zeichenkette ein "(" enthält.) Wenn dies der Fall ist, werden alle '(' und ')' Zeichen entfernt, die Zeichenkette in eine Ganzzahl umgewandelt und der Wert negativ gemacht. 'Zeichen und analysiert die ganze Zahl, also positiv.

    
Devin Snyder 18.04.2014 04:59
quelle

Tags und Links