Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Handynummern haben ja immer eine 0 vorne dran und somit kann es keine Zahl sein, da eine Zahl nicht mit einer 0 beginnen kann.
Ein Zeichen ist es allerdings auch nicht, da ein Zeichen immer nur ein Zeichen ist und nicht mehrere.
Somit bleibt eigentlich nur der String also die Zeichenkette übrig. Und vergleichen funktioniert mit der Methode .equals();
Hier ein Beispiel:
Java:
String handyNr = "0664/334324";
if(handyNr.equals("0664/334324")){
System.out.println("Handy Nr ist gleich");
}else{
System.out.println("Handy Nr ist nicht gleich");
}
Dann verwendest du ebenso einen String für alle Telefonnummern und vergleichst sie? Oder möchstest du einzelne Elemente der Telefonnummer vergleichen? Bring doch mal ein richtiges Beispiel
Noch der obigen angabe möchte ich eine telefonnummer eingeben und diese auf ihre richtigkeit kontrollieren zb
2468.
0732/2468.
0043 732/2468.
diese eingaben sind richtig wenn aber zb
der Punkt am Ende fehlt oder das Leerzeichen oder der Schrägstrich dann soll ein fehler ausgegeben werden
Java:
public class telephoneNumber
{
public static void main(String [] args)
{
Out.println("Geben Sie bitte eine Telefonnummer ein: ");
char a = In.peek(); // 1
if (a==0)
{
In.read();
}
char b = In.peek(); //2
if (b == 0)
{
In.read();
}
int c = In.readInt(); //3
if (false)
{
Out.println("Fehler an Stelle 3: Zahl erwartet");
}
char d = In.read(); //4
if (d != )
{
Out.println("Fehler an Stelle 4: erwartet");
}
int d = In.read(); //5
if (false)
{
Out.println("Fehler an Stelle 5: Zahl erwartet");
}
char e = In.read();//6
if (e = /)
{
Out.println("Fehler an Stelle 6: / erwartet");
}
int f = In.readInt();//7
if (false)
{
Out.println("Fehler an Stelle 7: Zahl erwartet");
}
char g = In.peek(); //8
if (g == -)
{
In.read();
}
else
{
}
int h = In.readInt();//9
if (false)
{
Out.println("Fehler an Stelle 9: Zahl erwartet");
}
int i = In.readInt();//10
if (done)
{
Out.println("Telefonnummer richtig");
}
else
{
Out.println("Fehler an Stelle 10: . erwartet");
}
}//main
}//class
Könntest die Nummer auch als einen einzigen String einlesen und dann eine if, else if Abfrage erstellen.
Fördert die Lesbarkeit und du hast ein paar Methoden und Operatoren mit drin, die man häufig braucht.
z.B. so:
Java:
String nummer = "0049/5485145.";
if( !(nummer.charAt(nummer.length()-1) == ('.')) ){
System.out.println("Die Nummer ist nicht im erwünschten Format.");
} else if (!nummer.contains("/")){
System.out.println("Die Nummer ist nicht im erwünschten Format.");
} else {
System.out.println( nummer + " ist im erwünschten Format.");
}
Könnte man natürlich noch mit anderen ifs schmücken, die dann checken, ob es nur Zahlen sind.
Nur als Vorschlag / Beispiel^^
ja ok aber dann muss ich die nummer immer so schreiben ich kann diese ja auch anders schreiben und sie ist trotzdem richtig dafür ist ja deine Lösung nicht geeignet oder?
Und kannst du mir bitte sagen was ein charAt ist?
liefern. Sprich, es würde nur die beiden letzten Fälle akzeptieren.
Bei der
Code:
.chatAt()
Methode nimmt er das Zeichen, das an der spezifizierten Stelle innerhalb der Klammern steht.
In diesem Fall testet er, ob der letzte Buchstabe/Zeichen, ein Punkt ist.
Das
Code:
nummer.length()-1
liefert uns hier die letzt mögliche Position für einen Buchstaben / Zeichen.
Nur
Code:
nummer.length()
würde eine IndexOutOfBoundsException liefern, weil wir damit bereits am Ende des Strings wären, und nach der letzt möglichen Position ja nichts kommen kann.
Meines Wissens nach, lassen sich aber nicht alle 3 Fälle auf TRUE stellen, sofern ein / und . enthalten sein sollten.
Falls ich hier einen Denkfehler habe, tut es mir leid.