Char Wert in Int Wert parsen

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Geht so etwas eigentlich?

Ich will überprüfen, ob der übergebene CharWert zwischen 1 und 5 liegt. Werte wie 0 und größer 5 sollen abgewiesen werden. Die Char-Werte zwischen 1 und 5 stellen für Auswahloptionen innerhalb einer switch Anweisung dar. Diese will ich vorher auf ihre Richtigkeit prüfen. Um einen größer-kleiner Vergleich zu machen, muss ich doch bestimmt den char-wert in einen int-wert umwandeln oder? Folgende Methode habe ich bisher entwickeln können:



Code:
public static boolean checkChoiceOption(char selection, int mistake){
        
        boolean failure; 
        boolean resume = true;
        char test = 'a';
        
        
        for(int i = 0; i < selection.length(); i++){
			
			if (Character.isDigit(selection.charAt(i)))
										
				failure = false;
				
			else
			
				failure = true;
				
										
		}
        
        
        if( selection.length() != test.length() || failure || selection == '0' ){
         
                     
            ++mistake;
            Print.printMistake(mistake);
                                                   
            resume = false;
                            
         }
         
         else 
             
              resume = true;
     
         
         return resume;
         
     }
 
funktioniert leider oder zum Glück nur für Strings,
entweder also um die Ecke den char in String umwandeln

oder getrickst kürzer:
int intvalue = charvalue - '0';


------
<'0' + > '4'

geht allerdings auch für chars, auch switch
 
Das verstehe ich nicht ganz, kannst Du das vielleicht etwas ausführlicher vielleicht mit char- und zahlenbeispielen beschreiben slater? Danke dir.
 
kannst du ausführlicher beschreiben, was du daran nicht verstehst?

die eine Codezeile
int intvalue = charvalue - '0';
kannst du doch selber mit verschiedenen charvalue-Werten ausprobieren
 
Gibt es eigentlich auch die Möglichkeit, einen String -Wert in einen Int-Wert zu parsen? Also wenn ich eine switch Anweisung mit einem Int-Wert statt mit einem char-wert abarbeiten möchte und verhindern will, dass versehentlich ein String oder char Wert übergeben wird?
 
Anonymous hat gesagt.:
Ich will überprüfen, ob der übergebene CharWert zwischen 1 und 5 liegt.
Code:
if (selection >= '1' && selection <= '5')
    // alles in Ordnung
else
    // fehlerhafte Eingabe
chars sind bereits "ganz normale" Werte zwischen 0 und 65535, die man wie ints miteinander vergleichen kann.

Java bietet besondere Literale (die mit den einfachen Hochkommata, also sowas wie 'a' oder 'z'), damit man nicht immer in der Unicode-Tabelle nachlesen muss, dass man ein a normalerweise als 97 oder eine 0 als 48 kodiert. Und die Ein- und Ausgabeoperationen sind derart programmiert, dass sie ebenfalls diese Interpretation leisten.

Und für das switch brauchst Du das nicht extra vorher abzufangen, ein default-case reicht auch:
Code:
switch (selection)
{
    case '1': // ...
    break;

    case '2': // ...
    break;

    case '3': // ...
    break;

    case '4': // ...
    break;

    case '5': // ...
    break;

    default: throw new IllegalArgumentException("Fehlerhafte Eingabe");
}
 
Einmal muss ich noch eine Frage loswerden. Habe ich eigentlich die Möglichkeit, einen Stringwert in einem Charwert zu parsen?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben