Wie kann ich in Java prüfen ob ein char gleich einer int zahl ist?
Zb
char c= '5'.
int i = 5.
klappt if(c ==5)?
2 Antworten
ein eine saubere lösung findest du hier
http://www.tutego.de/blog/javainsel/2016/11/von-char-in-int-vom-zeichen-zur-zahl/
char c = '5';
Integer.parseInt( String.valueOf(c) ); // 5
oder
Character.getNumericValue( c ) // 5
oder in deinem fall
if ( Integer.parseInt( String.valueOf(c) ) == 5 )
oder
if ( Character.getNumericValue( c ) == 5 )
Du musst so vergleichen:
z == i + '0'
Wenn du nur z == i vergleichst, vergleichst du die Zahl (53) die hinter dem char steckt mit der 5.
Die jeweiligen Nummern der Chars kannst du von der ASCII Tabelle ablesen. Dort hat die 0 die 48 und wenn du dir die Nummern mal anschaust, fällt dir auf das der Char 5 auf der ASCII Tabelle 48 höher ist als die 5. Deswegen addierst du die Zahl 48/char 0
sehr unsauber , funktioniert nur für unser zahlensystem , also die die im ascii system liegen . damit sind internationale eingaben schon mal ausgeschlossen .
http://www.tutego.de/blog/javainsel/2016/11/von-char-in-int-vom-zeichen-zur-zahl/