atoi in java mit charAt
Weiß ich, dass eine Lösung dazu ist die folgende:
String tmp = "12345";
int result = 0;
for (int i =0; i < tmp.length(); i++){
char digit = (char)(tmp.charAt(i) - '0');
result += (digit * Math.pow(10, (tmp.length() - i - 1)));
}
System.out.println(result);
Was ich nicht verstehe, ist, warum ist:
char digit = (char)(tmp.charAt(i) - '0');
Wie kann das konvertieren in eine Ziffer?
Sind Sie einfach versuchen, zu konvertieren einen string in einen int?
ja bin ich.. und ich würde das schreiben meiner eigenen Funktion, eine Art von atoi in C
Ist dieses Hausaufgaben? Wenn nicht, verwenden Sie einfach
haben Sie versucht, meine Lösung? Wenn es funktionierte, dann akzeptieren Sie bitte die Antwort und Stimme!
Mögliche Duplikate von gewusst Wie: konvertieren einer Zeichenfolge in einen int in Java?
ja bin ich.. und ich würde das schreiben meiner eigenen Funktion, eine Art von atoi in C
Ist dieses Hausaufgaben? Wenn nicht, verwenden Sie einfach
Integer.valueOf("12345")
. Wenn es ist, bitte markieren Sie Sie als solche.haben Sie versucht, meine Lösung? Wenn es funktionierte, dann akzeptieren Sie bitte die Antwort und Stimme!
Mögliche Duplikate von gewusst Wie: konvertieren einer Zeichenfolge in einen int in Java?
InformationsquelleAutor xonegirlz | 2011-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der ascii-Tabelle, Zeichen von
'0'
zu'9'
zusammenhängend sind. Also, wenn Sie wissen, dasstmp.charAt(i)
zurück ein Zeichen zwischen0
und9
, dann wieder entfernen0
zurückkehren wird der Versatz von null, das heißt, die Ziffer, das Zeichen repräsentiert.InformationsquelleAutor Tom
Mithilfe Math.pow ist sehr teuer, Sie wäre besser dran, unter Verwendung der Integer.parseInt.
Brauchen Sie nicht zu verwenden, Math.pow. Wenn Ihre zahlen sind immer positiv, Sie kann tun
InformationsquelleAutor Peter Lawrey
char
ist ein integer-Typ, die Karten unsere Buchstaben, um zahlen, die ein computer verstehen kann (siehe ein ascii-Tabelle). Ein string ist nur ein array von Zeichen. Da die Ziffern sind zusammenhängend in ascii-Darstellung,'1' - '0' = 49 - 48 = 1
,'2' - '0' = 50 - 48 = 2
usw.InformationsquelleAutor Kevin
Versuchen Sie dies:
atoi
könnte ein bisschen mistery für Entwickler. Java bevorzugt mehr lesbare NamenInformationsquelleAutor smas
Wenn die Verwendung von Integer.parseInt, die Sie haben zu fangen Sie die Ausnahmen, da
Integer.parseInt("82.23") oder Integer.parseInt("ABC") startet Ausnahmen.
Wenn Sie zulassen möchten, dass Dinge wie
was Sinn macht, dann können Sie
InformationsquelleAutor elxala
Java hat eine eingebaute Funktion, die dies tut...
InformationsquelleAutor PTBG
Ich wiederholen, was Tom sagte.
Wenn Sie verwirrt sind mit den oben genannten Umsetzung dann finden Sie das unter eine einfachere Umsetzung.
InformationsquelleAutor JRG
Wenn die Programmierung in Java, verwenden Sie bitte diese,
parseInt()
ist, was es tut, und wo kann man es finden Sie in der Dokumentation.Sicher. Statische Methode
parseInt()
überprüft, ob Zeichen in der Zeichenfolge werden Dezimalstellen außer der ersten eine, die konnte sein minus-Zeichen. [link]docs.oracle.com/javase/7/docs/api/java/lang/...Bitte verwenden Sie die Bearbeiten-Funktionalität auf Ihre Frage. Siehe Wie Schreibe ich eine gute Antwort in der Hilfe.
InformationsquelleAutor Bharathkumar V