Java Scanner Buchstaben einlesen, wie?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Warum verwendest du .nextInt() wenn du eine Zeichenfolge auslesen willst? Wenn ich es richtig verstanden habe, willst du dass 0 ausgegeben wird, wenn du abc eingibst. Das würde z.B. so funktionieren:

public static void main (String [] args){
  Scanner myConsole = new Scanner(System.in);
  String adder = myConsole.nextLine();
  if(adder.equals("abc")) System.out.println(0);
}

RaBo129 
Beitragsersteller
 12.10.2019, 12:05

Ich habe das ganze nun wie folgt gelöst;

import java.util.Scanner;


public class Zahlenerkennung {
	public static void main(String[] args) {
		Scanner myConsole = new Scanner(System.in);
		while(true){   
		String adder = myConsole.nextLine();
			  if(adder.equals("abcdef")) 
			      System.out.println(0);
			  if(adder.contentEquals("bc"))
				  System.out.println(1);
			  if(adder.contentEquals("abged"))
				  System.out.println(2);
			  if(adder.contentEquals("abgcd"))
				  System.out.println(3);
			  if(adder.contentEquals("fbgc"))
				  System.out.println(4);
			  if(adder.contentEquals("afgcd"))
				  System.out.println(5);
			  if(adder.contentEquals("fedcg"))
				  System.out.println(6);
			  if(adder.contentEquals("abgc"))
				  System.out.println(7);
			  if(adder.contentEquals("afgcdegb"))
				  System.out.println(8);
			  if(adder.contentEquals("afgbcd"))
				  System.out.println(9);
										  
			
	}


}
	
}	


Wie kann ich jetzt aber zum Beispiel die Zahl 12 einlesen, sprich wie kann ich das System die Zeichen "bc""abged" lesen und drucken lassen?

Ich weiss, der Code ist ziemlich "ineffizient"...Bin gerade in meiner 3 Woche Java programmieren

RaBo129 
Beitragsersteller
 11.10.2019, 21:39

Vielen Dank!!! Hat mir sehr geholfen!!! :DDD

Variablen sollten immer zumindest einen Hinweis auf ihren Verwendungszweck geben.

Warum heißt die Variable, an die du die Eingabe zuweist, adder?

Was wird da addiert?


RaBo129 
Beitragsersteller
 12.10.2019, 10:05

Uhm ja das müsst ich auch noch umändern stimmt!!! Vielen Dank!!! :DDD

Ab Java 8 kannst du ein switch über die Strings machen. Das ist viel übersichtlicher.

Noch schöner ist es, wenn du eine Map anlegst und dann via key den value ermittelst. Dann gibt es nur ein oder zwei Statements für die Ausgabe.

Da sind zwei Fragen, die zu trennen sind.

  1. Der Scanner, also die Zeichenfolgen, die einzulesen sind
  2. Das was aus dem Gescannten gemacht werden soll.

Was willst du insgesamt machen?


RaBo129 
Beitragsersteller
 11.10.2019, 21:00

Ich möchte dem System als input den code abc eingeben (respektive noch andere) und dann mir die Zahl 0 als output drucken lassen vom Scanner

gogogo  12.10.2019, 07:06
@RaBo129

blvck hat dazu geantwortet. War von einem größeren Programmansatz ausgegangen.