if anweisung

Hi,

Ganz einfach.
Java:
		char e = '/';

		if(e=='/'){
			System.out.println("gleich");
		}else{
			System.out.println("nicht gleich");
		}

Zwei '' stellen ein Symbol dar.
 
Hi,

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");
		}
 
ja ok stimmt aber dann sagen wir zb beim Telefon kann man +43 oder 00 oder vorwahl und subscriber angeben

ich möchte daher alle Elemente einzeln überprüfen
 

Anhänge

  • java1.PNG
    java1.PNG
    5,1 KB · Aufrufe: 40
Zuletzt bearbeitet:
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
 

Anhänge

  • java1.PNG
    java1.PNG
    5,1 KB · Aufrufe: 25
Zuletzt bearbeitet:
Du kannst mit RegEx prüfen, ob die Strings im richtigen Format sind, oder mit
Code:
.contains()
prüfen, ob die einzelnen Zeichen vorhanden sind.
In deinem Fall würde ich es mit
Code:
.contains()
machen.

RegEx ist denke ich zu schwer für den Anfang.

Hoffe dass ich dein Problem richtig verstanden habe ^^
 
Zuletzt bearbeitet:
Java:
if(!deinString.contains("/") // Wenn kein / vorhanden ist 
{
System.out.println("Die Nummer muss ein \" / \" enthalten");
}

Dein Code ist mir allerdings etwas suspekt.
Das könnte man noch um einiges verkürzen, sofern ich deine Aufgabe richtig verstanden habe.
 
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?
 
Meine Abfragen würden:

Java:
2468. FALSE
0732/2468. TRUE
0043 732/2468. TRUE

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.
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben