# String überprüfen ob nur Ziffern enthalten sind!!



## nemonix (27. Feb 2004)

hoff ich bin im richtigen forum!

habe folgende problemstellung

Eingabe wird in String gespeichert
String soll überprüft werden ob nur Ziffern von 0-9 enthalten sind

plz need help

thx


----------



## DP (27. Feb 2004)

du gehst zeichen für zeichen durch und prüfst den char-code. fertig.


----------



## Vatar (27. Feb 2004)

DP hat gesagt.:
			
		

> du gehst zeichen für zeichen durch und prüfst den char-code. fertig.



oder  er versucht den String zu parsen und packt das ganze in nen try catch block. Da sparst du dir ne menge schreibarbeit


```
public boolean pruefeString (String a) 
{
   boolean ziffer;
   int b = 0;
   try {
      b = Integer.parseInt(a);
      ziffer = true;
   } catch(NumberFormatException e)
   {
      System.out.println(e.getMessage());
      // nicht zwingend nötig, da zoffer bereits false
      ziffer = false
   }
   return ziffer;
}// endmethod
```


----------



## Beni (27. Feb 2004)

Wie steht es mit Character.isDigit? Fasst den Beriff "Zahl" etwas lockerer auf (können auch indische Zeichen usw. sein), aber ich weiss ja nicht, was du machen willst.


```
public boolean testString (String a){
  for( int i = 0, n = a.length(); i<n; i++ )
    if( ! Character.isDigit( a.charAt( i ) )
      return false;

  return true;
}
```

mfg Beni


----------



## DP (27. Feb 2004)

oder so - ist natürlich einfacher


----------



## Mick (27. Feb 2004)

Vatar hat gesagt.:
			
		

> DP hat gesagt.:
> 
> 
> 
> ...



Hier ist es aber von der Länge des String abhängig, ob es geht oder nicht, da int begrenzt ist.
Also prüfen, wie lang der String im höchsten Falle ist und danch Methode auswählen.
Man könnte dann z.B. auch long wählen.

Grüße,
Mick


----------



## nemonix (27. Feb 2004)

ok danke mal für die Antworten!!

hab vergessen anzugeben wie lang der String ist

der String soll einen Code darstellen, dieser besitzt 6 Ziffern!!


```
public boolean pruefeString (String a) 
{ 
   boolean ziffer; 
   int b = 0; 
   try { 
      b = Integer.parseInt(a); 
      ziffer = true; 
   } catch(NumberFormatException e) 
   { 
      System.out.println(e.getMessage()); 
      // nicht zwingend nötig, da zoffer bereits false 
      ziffer = false; 
   } 
   return ziffer; 
}// endmethod
```

damit funktionierst!!!

Danke


----------



## me.toString (27. Feb 2004)

Wenn du mit JDK 1.4 arbeitest, kannst du das Ganze auch mit einem regulären Ausdruck erledigen. 
Ich weiss jetzt nicht genau wie's geht ... aber 's muss sehr einfach sein. In der API wirst du sicherlich 
genug Input finden...  :### 
ABER ... das Compilat (gibt's das Wort überhaupt ... klingt auf jeden Fall ziemlich cool ...  :wink: ) ist 
dann nur auf Rechnern mit einer VM ab 1.4 anwendbar, da die Funktionalität ganz neu ist. Alternativ 
kann man auch aus dem Jakarta-Projekt 'ne Biblothek runterladen, die die Funktionalität zur
Verfügung stellt (dann gehts auch mit JDK 1.3 oder weniger ).


----------



## bygones (27. Feb 2004)

wenn mit regex sollte der ausreichen:
	
	
	
	





```
"\\b\\d+\\b"
```
 (ohne Gewähr *g*)


----------

