# prüfen ob fünfstelllig?



## Untaimed (4. Nov 2010)

Hi,
wie kann ich ein Programm schreiben, welches austestet, ob eine eingegebene Zahl fünfstellig ist? Falls die Zahl fünfstellig ist soll es ausgeben :"Die eingegeben Zahl ist fünfstellig".
Falls nicht das Gegenteil.

Das Grundgerüst habe ich (mit if-Funktionen) schon. Jedoch weiss ich nur nicht, wie ich es prüfen lasse ob die Zahl fünfstellig ist.

Ich bitte um Hilfe

Danke im Vorraus^^


----------



## ARadauer (4. Nov 2010)

entweder in String umwandeln und mit length prüfen oder schaun ob sie größer 9999 und kleiner als 100000 ist


ach ja, if ist keine funktion


----------



## @x.l (4. Nov 2010)

Eine Möglichkeit ist: Konvertiere die Ganzzahl in einen String und prüfe die Länge.

Du kannst es aber auch auf einem mathematischem Weg lösen.


----------



## Untaimed (4. Nov 2010)

ARadauer hat gesagt.:


> entweder in String umwandeln und mit length prüfen oder schaun ob sie größer 9999 und kleiner als 100000 ist



das mit dem größer als 9999 habe ich schon probiert. Aber 00001 ist ja auch fünfstellig und das wäre nicht dabei;(

Wie mache ich das mit dem length? Kannst du mir vlt. ein Beispielcode geben?


----------



## L-ectron-X (4. Nov 2010)

```
String zahl = "12345";

//oder
zahl = String.valueOf(12345); //wenn du einen int-Wert hast

int length = zahl.length();
```


----------



## Andi_CH (4. Nov 2010)

if-Funktion:
Gib mal "if funktion" bei google ein --- Kein Wunder, dass das immer wieder auftaucht wenn sogar bei wikipedia sowas steht.

[JOKE]
ausserdem bin ich nicht mal soooo sicher if(a==b) ...
also sieht doch if so auch

```
public static boolean if(boolean pB) {
   return pB;
}
```
[/JOKE]

Zurück zum Thema

In welcher Form hast du denn die Zahl - String oder numerisch?


----------



## Landei (4. Nov 2010)

Untaimed hat gesagt.:


> das mit dem größer als 9999 habe ich schon probiert. Aber 00001 ist ja auch fünfstellig und das wäre nicht dabei;(



Zahlen in Java sind ohne führende Nullen definiert. Eine 1 ist immer einstellig, du hast beim Datentyp keine Möglichkeit, führende Nullen zu definieren oder so. Wenn du sowas brauchst, etwa bei Postleitzahlen, solltest du einen String nehmen - denn PLZ sind sowieso nicht zum Rechnen gedacht.


----------



## ARadauer (4. Nov 2010)

Untaimed hat gesagt.:


> das mit dem größer als 9999 habe ich schon probiert. Aber 00001 ist ja auch fünfstellig und das wäre nicht dabei;(
> Wie mache ich das mit dem length? Kannst du mir vlt. ein Beispielcode geben?


00001 ist auch keine Zahl sondern ein Text also einfach length(); der Klasse String benutzen!

Muss man heutzutage wirklich ein Forum fragen wie man eine Methode aufruft? Das hatten wir heute schon zwei mal 

Ach scheiße ich mach Feierabend...


----------



## Untaimed (4. Nov 2010)

Habs hinbekommen, danke euch (-;

Hier der Code


```
import java.util.Scanner;

public class fuenfstellig {

  public static void main(String[] args) {

  Scanner sc = new Scanner(System.in);
  
  System.out.print("Bitte geben Sie eine Zahl ein ");
  
  String zahl = sc.next();
  
  int length = zahl.length();
  
  if (length == 5){
    System.out.println("Die Zahl ist fünfstellig");
  }
  
  else {
    System.out.println("die Zahl ist nicht fünfstellig");
  }
  
  

  }
}
```


----------



## Andi_CH (4. Nov 2010)

Na ja - dass 00005 eine fünfstellige Zahl ist, ist bestreite ich - als Zahl ist es einstellig, als String 5 stellig, 

Gibt mal -0001 oder +0002 ein - sollen die auch 5-stellig sein?


----------



## timbeau (4. Nov 2010)

Abgesehen davon ist auch 'Java6' eine 5-stellige Zahl. Dein Code ist noch nicht wirklich gut.


----------



## Landei (5. Nov 2010)

So kannst du testen, ob ein String nur Ziffern enthält:


```
String str = ...
boolean onlyDigits = true;

for(int i = 0; i < str.length(); i++) {
   char ch = str.charAt(i);
   if(ch < '0' || ch > '9') {
      onlyDigits = false;
      break;
   }
}

if(! onlyDigits) {
   System.out.println("keine Zahl");
}
```


----------



## bygones (5. Nov 2010)

```
"1234".matches("\\d+")
```


----------



## Landei (5. Nov 2010)

Sicher, aber erst mal das Gehen beibringen, bevor man mit dem Rennen anfängt...


----------



## ARadauer (5. Nov 2010)

5 stellige Zahl
 "12345".matches("\\d{5}")

aber wie Landei schon angedeutet hat ist regex was mit dem sich anfänger noch nicht beschäftigen müssen......


----------



## bygones (5. Nov 2010)

Landei hat gesagt.:


> Sicher, aber erst mal das Gehen beibringen, bevor man mit dem Rennen anfängt...



wenn ihr meint ;-)

aber dann jdf


```
for(int i = 0; i < str.length(); i++) {
   if (!Character.isDigit(str.charAt(i))) {
      onlyDigits = false;
      break;
   }
}
```
auch Anfänger sollten API Methoden nutzen


----------

