# scanner, String einlesen und vergleichen



## java_anfänger(= (13. Feb 2015)

Hi, ich wollte grade mal wieder nach ziemlich vielen Monaten Pause von Java ein ganz simples Programm schreiben, aber es klappt nicht so wie ich will und ich verstehe nicht wieso... 
Das vergleichen der Strings klappt irgendwie nicht, jedes mal springt er ins das letzte else... 
hoffe jemand kann mir helfen 

ach ja ich möchste es mit dem scanner lösen und nicht mit dem BufferedReader 


```
public static void main (String args[]){
		
		Scanner s = new Scanner(System.in);
		Scanner t = new Scanner(System.in);
		
		System.out.println("Geben Sie bitte zwei Zahlen ein die verrechnet werden sollen");
				
		int x = s.nextInt();
		int y = s.nextInt();
		
		System.out.println("Wie sollen sie verrechnet werden? Geben sie ein + ein - ein * oder / ein ");
		
		String z = t.nextLine(); 
		
		String p ="+";
		String m = "-";
		String mul = "*";
		String div = "/";
		
		if (z == p)	{
		
		int plus = x+y;	
			System.out.println(x + " + " + y + " = " + plus);
		}
		
			else if (z == m){
			
				int min = x - y;
				System.out.println(x + " - " + y + " = " + min);
		}
		
			else if (z == mul){
				
				int multi = x * y;
				System.out.println(x + " * " + y + " = " + multi);
		}
		
			else if (z == div){
				
				int divi = x/y;
				System.out.println(x + " / " + y + " = " + divi);
		}
		
			else 
				System.out.println("Ungültige Eingabe für die Verrechnung!");
		
	}

}
```


----------



## Bananabert (13. Feb 2015)

Strings vergleicht man mit equals.


----------



## java_anfänger(= (13. Feb 2015)

ja stimmt :lol: danke


----------



## InfectedBytes (13. Feb 2015)

seit Java 7 kann man Strings auch mit switch vergleichen, das macht es etwas übersichtlicher:

```
switch(z) {
  case "*":
    //...
    break;
  case "/":
    //...
    break;
  //...
}
```


----------

