# Char auf Zahl überprüfen



## Supera459 (30. Okt 2011)

Hallo,
ich bin im 1. Semester Informatik und wir fangen gerade mit Java an.

Das klappt auch bis jetzt ganz gut, allerdings haben wir in einer Übung eine Frage bekommen, die ich nicht lösen kann und auch durch Suchen (hier und in Google) zu keinem Ergebnis komme, was mich weiterbringt.

Frage: 
Die Variable test ist vom Typ char.
Nennen Sie einen logischen Ausdruck, mit dem man überprüfen kann ob die Variable "test" eine Dezimalziffer ist.

Mein Vorschlag:

```
Character.isDigit(test);
```

Allerdings ist das kein logischer Ausdruck... MAn muss wohl irgendwas mit AND OR ... erreichen können..

Habt ihr eine Idee?

Gruß
Supera


----------



## Supera459 (30. Okt 2011)

Da fällt mir grade was simples ein:


```
if (test >= '0' && test <= '9')
```

Kann das funktionieren?


----------



## Gast2 (30. Okt 2011)

Genau genommen ist das schon ein logischer Ausdruck, Character#isDigit liefert dir true/false.
Die Aufgabenstellung will aber vermutlich eher aus sowas hinaus:

```
test >= '0' && test <= '9'
```

EDIT:
Ja teste das halt mal aus


----------



## Supera459 (30. Okt 2011)

Danke!

Das klappt wirklich, aber mir ist aufgefallen, so wie wir es aufgeschrieben haben geht das nur wenn da steht:

test = '7' z.B. nicht jedoch bei test = 7

Schreibt man bei char also immer charvariable = 'zahl' und nicht = zahl ?


----------



## ARadauer (30. Okt 2011)

> .B. nicht jedoch bei test = 7


char 7 ist auch keine zahl

die zahl 7 ist das char 37

ASCII-Tabelle


----------



## Gast2 (30. Okt 2011)

Wenn du schreibst 
	
	
	
	





```
char test = '7'
```
, dann meinst du die Zahl 7. In der Ascii Tabelle hat diese Zahl den Dezimalwert 55. So würde 
	
	
	
	





```
System.out.println(test);
```
 auch 55 liefern.

Schreibst du stattdessen 
	
	
	
	





```
char test = 7;
```
, so weißt du der variable test den dezimalwert 7 zu, und das ist irgend ein steuerzeichen.

Die Abfrage 
	
	
	
	





```
test >= '0' && test <= '9'
```
 kannst du auch wie folgt umschreiben:

```
test >= 48 && test <= 57
```


----------



## Supera459 (30. Okt 2011)

Danke euch, jetzt versteh ich das auch mal  In den Vorlesungen wird man da nicht immer schlau draus.

Soll ich für die Übung lieber die richtigen Zahlen verwenden oder direkt mit ASCII arbeiten?

Es ist nirgends angegeben, ob die Variable test = '7' oder test = 7 heisst???:L


----------



## Gast2 (30. Okt 2011)

Wenns nen char ist, dann ist damit ziemlich sicher '7' gemeint.


----------



## Supera459 (30. Okt 2011)

EikeB hat gesagt.:


> Wenns nen char ist, dann ist damit ziemlich sicher '7' gemeint.



Ok dann verwende ich also besser 


```
test >= '0' && test <= '9'
```

Dankeschön nochmal


----------

