Aufgenommen, weil ich zum ersten Mal die Methode getNumericValue verwendet habe.
-Erhalten Sie die Berechnungsformel mit einer Zeichenfolge beliebiger Länge (alle verwendeten Zahlen sind 1-stellig, Operatoren sind nur '+' und'- ') ・ Berechnen Sie die empfangene Zeichenfolge als numerischen Wert ・ Berechnungsergebnis ausgeben
(Beispiel) Eingabe: "1 + 2 + 3" Ausgabe: 6
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
sc.close();
char [] c = line.toCharArray();
int sum = 0;
boolean add = true;
for(int i = 0; i < line.length(); i++) {
if(i % 2 == 0) {//Gerade Zahlen werden berechnet, da sich Zahlen und Operatoren abwechseln.,Quoten-Swap-Operatoren
if(add) {
int n = c[i];
sum += n;
} else {
int n = c[i];
sum -= n;
}
} else {
if(c[i] == '+') {
add = true;
} else {
add = false;
}
}
}
System.out.println(sum);
Eingabe: "1 + 2 + 3" Ausgabe: 150
-Wenn der im Array vom Typ char eingegebene numerische Wert in den Typ int konvertiert wird, wurde ihm der ASCII-Zeichencode zugewiesen. → Ich möchte die Zahlen im Array so herausnehmen, wie sie sind!
if(add) {
int n = Character.getNumericValue(c[i]);
sum += n;
} else {
int n = Character.getNumericValue(c[i]);
sum -= n;
}
Eingabe: "1 + 2 + 3" Ausgabe: 6
Wenn Sie die Zeichentypnummer unverändert verwenden möchten, verwenden Sie den Zeichentyp getNumericValue ().
if(c[i] == '+') {
add = true;
} else {
add = false;
}
Im obigen Teil gibt der Vergleichsoperator einen booleschen Typ zurück, sodass Sie die Authentizität beurteilen können, indem Sie ihn direkt dem Hinzufügen zuweisen.
add = c[i] == '+';
Recommended Posts