Java Scanner Buchstaben einlesen, wie?
Hallo zusammen!!!
Ich bin gerade an einem Programm, welches mir einen Buchstabencode einliest und mir dann eine Zahl ausdruckt.
Bsp: Ich gebe abc ein und das Proramm druckt mir die Zahl 0 aus.
Folgenden Code habe ich ausprobiert, jedoch irgendwie liesst er mir die Buchstaben nicht ein...
public class Zahlenerkennung {
public static void main(String[] args) {
Scanner myConsole = new Scanner(System.in);
int adder = myConsole.nextInt();
char abc = 0 ;
if (adder == abc)
System.out.println(0);
Muss man da anderst vorgehen, respektieve mit einem anderen Scanner?
Vielen Dank!!! :DDD
4 Antworten
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);
}
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
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?
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.
- Der Scanner, also die Zeichenfolgen, die einzulesen sind
- Das was aus dem Gescannten gemacht werden soll.
Was willst du insgesamt machen?
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