2016-04-06 15 views
2

Meine String-Eingabe ist String Number = "546 + 90".Java String-Ausgabe

Ich möchte Ausgabe wie folgt geben "546 + 90" .wie kann ich es in Java tun? Jetzt versuche ich gerade:

Number.replaceAll("[0-9]"," "); 

Aber es scheint nicht zu funktionieren. Hat jemand irgendwelche Vorschläge?

+2

Sie profitieren nicht Variablennamen – redFIVE

+0

es scheint, ist Verwirrung, ob die Eingabe "String Number = 546 + 90" oder einfach nur "546 + 90" –

+0

Ich habe mistake.sorry gemacht ist !!!. sein "546 + 90". Ich habe es bearbeitet. –

Antwort

0

Erstens, Number ist eine integrierte Klasse in der java.lang-Paket, so dass Sie nie diesen Namen verwenden sollten.

Zweitens sollten Variablen in Kleinbuchstaben geschrieben werden, also sollte es number sein.

Drittens sind Strings unveränderlich, so dass die Notwendigkeit, den Rückgabewert von replaceAll() erhalten.

Wenn Sie diese Zeichenfolge wollen: "String Number=546+90"
diese Zeichenfolge zu werden: "546 + 90"
dann müssen Sie etwas strippen vor = und fügen Plätze rund um das +.

String number = "String Number=546+90"; 
number = number.replaceFirst(".*=", "") 
       .replaceAll("\\+", " + "); 
System.out.println(number); 

Wenn Sie andere Betreiber wollen auch eine Zeichenklasse verwenden:

Dies kann durch Verkettungs replace Anrufe erfolgen. Sie müssen das Zeichen erfassen, um es in der Ersetzungszeichenfolge zu behalten, und Sie müssen- zuerst oder zuletzt setzen (oder es zu entkommen).

number = number.replaceFirst(".*=", "") 
       .replaceAll("([-+*/%])", " $1 "); 
+0

Es funktioniert !!! Vielen Dank. Wollen Sie erklären, warum Sie $ 1 verwenden? –

+0

So bleibt das Operatorzeichen erhalten, das gefunden wird. Siehe ['Matcher.appendReplacement()'] (https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#appendReplacement%28java.lang.StringBuffer,%20java. lang.String% 29) für vollständige Beschreibung. – Andreas

2

Strings sind unveränderlich, so dass Sie die Zeichenfolge Resultierende der ersetzen Methode erhalten müssen:

public static void main(String[] args) { 
     String number="546+90"; 
     number = number.replaceAll("\\+" , " + "); 

     System.out.println(number); 
    } 
+2

ist nicht + reserviert? vielleicht braucht es eine Flucht –

+1

ja, es muss geklärt werden ... danke für den Kommentar –

0

ein Escape-Zeichen Hinzufügen Ihr Problem
String Number = "\"“+ "546 + 90" lösen + "\" ";