Ein String eine Zahl zuweisen

Trabbelmaker

Aktives Mitglied
Guten Tag,
ich bin noch ein Anfänger in Java, darum seit nicht so hart zu mir :).
Mein Problem:
Wenn ich in der Console "Deutsch" oder "Englisch" schreibe, möchte ich einer Variable einen bestimmten Wert zuweisen. Kurze Erklärung: Wenn ich Deutsch schreibe, soll die Variable den Wert 1 bekommen und wenn ich Englisch schreibe, soll die Variable den Wert 2 bekommen.
So sieht mein Code aus:
Code:
class Sprachauswahl {
	private String sprache;
	private int sprachezahl;
	
	Scanner scan = new Scanner(System.in);

	public void zahlenEingabe() {
		System.out.println(">>>>Sprache wählen<<<<");
		System.out.println("Schreib die Sprache in den Chat die du gerne haben möchtest. Zur Auswahl stehen: ");
		System.out.println("Deutsch || Englisch || Französich");
		sprache = scan.nextLine();
		
		
		if(sprache == 1) {
			Deutsch speakgerman = new Deutsch();
			speakgerman.languageGerman();
		} else if(sprache == 2) {
			English speakenglish = new English();
			speakenglish.languageEnglish();
		} else if(sprache == 3) {
			France speakfrance = new France();
			speakfrance.languageFrance();
		}
	}
}
 
Und deine Frage? Du präsentierst lediglich deinen Code... was funktioniert denn nicht? Ohne den Code geprüft zu haben, da er korrekt aussieht, scheint der Codeschnipsel doch das geschilderte Verhalten an den Tag zu legen oder nicht?
 
Zuletzt bearbeitet:

Trabbelmaker

Aktives Mitglied
Also ich habe es überarbeitet und mir ist eingefallen, dass das mist ist was ich mache :D
Ich habe den Code jetzt etwas besser gemacht, aber es funktioniert immer noch nicht.
Java:
class Sprachauswahl {
	private String sprache, Deutsch, Englisch, Französisch;
	
	Scanner scan = new Scanner(System.in);

	public void zahlenEingabe() {
		System.out.println(">>>>Sprache wählen<<<<");
		System.out.println("Schreib die Sprache in den Chat die du gerne haben möchtest. Zur Auswahl stehen: ");
		System.out.println("Deutsch || Englisch || Französich");
		sprache = scan.nextLine();
		
		if(sprache == Deutsch) {
			Deutsch speakgerman = new Deutsch();
			speakgerman.languageGerman();
		} else if(sprache == Englisch) {
			English speakenglish = new English();
			speakenglish.languageEnglish();
		} else if(sprache == Französisch) {
			France speakfrance = new France();
			speakfrance.languageFrance();
		}
	}
}

Also mein Problem ist folgendes. Der Code führt nicht die Klasse aus.
Also wenn ich Deutsch in die Console schreibe, soll der die Klasse Deutsch ausführen
Java:
if(sprache == Deutsch) {
			Deutsch speakgerman = new Deutsch();
			speakgerman.languageGerman();
>>Klasse Deutsch:<<
Java:
class Deutsch {
	
	public void languageGerman() {
		System.out.println("Du hast die Sprache auf Deutsch gestellt.");
	}
}
 
Zuletzt bearbeitet:

Bug Fisher

Bekanntes Mitglied
Du erwartest einen Bezug des compilers zu deiner Logik, die leider nicht möglich ist; nämlich
sowas wie:
1 -> deutsch
2 -> english
usw...
das steht nicht mal menschennachvollziehrbar irgendwo!

Abgesehen davon postest du code, der gar nicht kompiliert ! Das wird hier und auch woanders nicht gern gesehen, wenn du nicht explizit fragst, warum sich etwas nicht übersetzen lassen will.

Dein (jetziges) Problem lässt sich via
if(sprache.equals("1")) usw.
lösen, wenngleich du nutzerunfreundlich nichtmals einen Hinweis dazu gibst, wie eine eigebegebene Ziffer interpretiert werden wird.
Ist jetzt "21" deutsch ? Oder "0" englisch; was ist mit "21.5" ? deutsch-schweiz?

Und wenn dein Block soweit funktioniert... musst du trotz if-else, immer wieder Fallunterscheidungen machen... soweit meine Prophezeihung :)
Die Antwort darauf ist dann Polymorphie, aber dazu werden wir, wenn es dir ernst ist, dann noch kommen :)
 
Zuletzt bearbeitet:
Soo die Lösung ist da:

Java:
public class Sprachauswahl {
	
        private String sprache;

	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	public void zahlenEingabe() {
		System.out.println(">>>>Sprache wählen<<<<");
		System.out.println("Schreib die Sprache in den Chat die du gerne haben möchtest. Zur Auswahl stehen: ");
		System.out.println("Deutsch || Englisch || Französich");
		try {
			sprache = br.readLine();
		} catch (IOException e) {
			System.out.println("Es ist ein Fehler aufgetreten: " + e);
		}

		if (sprache.trim().toLowerCase().equals("deutsch")) {
			Deutsch speakgerman = new Deutsch();
			speakgerman.languageGerman();
		}
	}
}

Wenn du fragen zum Code hast stell Sie einfach, sonst gehe ich davon aus, du hast alles verstanden.
 
Zuletzt bearbeitet:

Trabbelmaker

Aktives Mitglied
Also, ich will mich entschuldigen, wenn ich mich bisschen blöde ausgedrückt habe. (Kann meine Probleme schlecht beschreiben)
Aber ich versuche es so gut wie es geht zu erklären.
Was ich oben geschrieben habe, zählt nicht mehr, da ich den Code schon anderes geschrieben habe, weil es, wie es vorher war, dämlich von mir war :)
Mein Problem ist jetzt, dass der Compiler keine Fehler sagt, aber der Code nicht funktioniert.
Also ich gebe eine Sprache ein, in diesen Fall "Deutsch".
Das Wort Deutsch wird nun auf ein String namens "sprache" gepackt.
Danach habe ich eine if- Abfrage die überprüfen soll, ob der String "sprache" mit "Deutsch" oder "Englisch" übereinstimmt. In diesen Fall stimmt er ja mit "Deutsch" überein und dann sollte er die Klasse "Deutsch" ausführen.
In der steht einfach nur:
Java:
class Deutsch {
	
	public void languageGerman() {
		System.out.println("Du hast die Sprache auf Deutsch gestellt.");
	}
}

Ich hoffe, ich habe es jetzt verständlicher ausgedrückt :)
 
Zuletzt bearbeitet:

Trabbelmaker

Aktives Mitglied
Soo die Lösung ist da:

Java:
public class Sprachauswahl {
	
        private String sprache;

	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	public void zahlenEingabe() {
		System.out.println(">>>>Sprache wählen<<<<");
		System.out.println("Schreib die Sprache in den Chat die du gerne haben möchtest. Zur Auswahl stehen: ");
		System.out.println("Deutsch || Englisch || Französich");
		try {
			sprache = br.readLine();
		} catch (IOException e) {
			System.out.println("Es ist ein Fehler aufgetreten: " + e);
		}

		if (sprache.trim().toLowerCase().equals("deutsch")) {
			Deutsch speakgerman = new Deutsch();
			speakgerman.languageGerman();
		}
	}
}

Wenn du fragen zum Code hast stell Sie einfach, sonst gehe ich davon aus, du hast alles verstanden.

Bei diesen Code bekomme ich eine menge von Fehlern.
Java:
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	BufferedReader cannot be resolved to a type
	BufferedReader cannot be resolved to a type
	InputStreamReader cannot be resolved to a type
	BufferedReader cannot be resolved to a type
	IOException cannot be resolved to a type

	at de.Javalernen1.java.Sprachauswahl.<init>(Sprachauswahl.java:7)
	at de.Javalernen1.java.Test.main(Test.java:6)
Das spuckt mein Edior aus (Ich benutze Eclipse)
 
Zuletzt bearbeitet:
Du musst auch die Imports fixen, meist ist der Shortcut hierfür: "Strg+shift+o" oder du bindest die Imports manuell ein.

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

In Eclipse ist der Shortcut wie oben angegeben...
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    35,3 KB · Aufrufe: 35
Zuletzt bearbeitet:

Trabbelmaker

Aktives Mitglied
Noch eine Frage zu den neuen Code.
Es kam gerade eine neue Sachen dazu, die ich vorher noch nie gesehen habe und möchte jetzt gerne die neuen Befehle erklärt bekommen, wenn das in Ordnung ist :)
Ist der BufferedReader so etwas wie der Scanner? Bisher habe ich nur den normalen Scanner kennengelernt.
Was macht dieser Code?:
Java:
if (sprache.trim().toLowerCase().equals("deutsch")) {
			Deutsch speakgerman = new Deutsch();
			speakgerman.languageGerman();
		}
Wenn möglich, bitte so erklären, dass es ein Anfänger versteht :D

Vielen, vielen dank nochmal, für die schnelle Hilfe.
 
Ja der BufferedReader ist so etwas wie ein scanner... Ich muss zugeben ich kann dir den Unterschied zwischen Scanner und BufferedReader jetzt nicht erklären aber Google kann dir da bestimmt weiterhelfen, wenn es dich interessiert.

So dein Problem war:
Java:
private String sprache, Deutsch, Englisch, Französisch;
du hast 4 String variablen deklariert, davon abgesehen werden variablen immer klein geschrieben.

später hast du den eingelesenen String mit einer leeren Variable verglichen ...

Java:
if(sprache == Deutsch) { // Deutsch hat keinen Inhalt ...
...
}
so nun zu der Codezeile die dich interessiert...
Java:
if (sprache.trim().toLowerCase().equals("deutsch")) {
//.trim() schneidet alle führenden und angehängten Leerzeichen ab
//.toLowerCase() mach aus allen Buchstaben in deiner Variable Kleinbuchstaben (macht z.B. aus dEuTsCh -> deutsch)
//.equals() hiermit werden Strings verglichen, es ist wie == nur für Strings
// "deutsch" ist dein String, den du vergleichen möchtest (z.B. String.equals(String))
}
 
Zuletzt bearbeitet:

Bug Fisher

Bekanntes Mitglied
Als Anfänger solltest du mindestens sowas haben (und handleUserInput aufrufen):

Java:
private static enum Language  {
		GERMAN, ENGLISH, FRANCE
	}
	
	private static void handleUserInput() {
		switch(getLanguage()) {
			//do ur stuff
		}
	}
	
	
	private static Language getLanguage() {
		System.out.println(">>>>Sprache wählen<<<<");
	    System.out.println("Schreib die Sprache in den Chat die du gerne haben möchtest. Zur Auswahl stehen: ");
	    System.out.println("Deutsch || Englisch || Französich");
	    
	    Scanner in = null;
	    
	    try {
	    	in = new Scanner(System.in);
	    	final String language = in.nextLine();
		    if (language.trim().toLowerCase().equals("deutsch")) {
		        return Language.GERMAN;
		    } else {
		    	//do ur stuff;
		    }
	    } finally {
	    	in.close();
	    }
	}

Später sollte das Ding dann eigentlich ungefähr so aussehen:

Java:
public interface UserInputHandler {
    public Configuration handleUserInput(final String[] inputs);
}

mit verschiedenen Implemetierungen für jede Sprache
 

Trabbelmaker

Aktives Mitglied
Ok danke, dass du dir die Zeit genommen mir das zu erklären.
Jetzt weiß ich schon ein Stückchen mehr über die Sprache :)

Mit freundlichen grüßen,
Trabbelmaker
 

fischefr

Aktives Mitglied
Ja der BufferedReader ist so etwas wie ein scanner... Ich muss zugeben ich kann dir den Unterschied zwischen Scanner und BufferedReader jetzt nicht erklären aber Google kann dir da bestimmt weiterhelfen, wenn es dich interessiert.

Falsch! BufferedReader und Scanner haben so rein gar nichts gemeinsam!

Der springende Punkt bei der Variante mit BufferedReader ist das stdin, das die Standard-Eingabe (im Normalfall die Tastatur) verkörpert. BufferedReader puffert lediglich die Eingabe zwischen und ermöglicht dir, aus diesem Puffer mit readLine bis zum nächsten Zeilenumbruch zu lesen. Ohne BufferedReader wäre das nur Zeichen für Zeichen möglich. Die ganze Zeile in sich erfüllt aber annähernd den gleichen Zweck wie die Zeile mit scanner. Da hat sich OutOfBeerExept. etwas unglücklich ausgedrückt. Wollte das nur nochmal klar stellen.
 
Zuletzt bearbeitet:
@fischefr

Davon abgesehen, dass ich dein Verhalten ziemlich daneben finde, finde ich es gut das du beim Besserwissen immerhin 50% erklärt hast. Nun wissen wir, dank deiner Erklärung, dass der BufferedReader quasi ein simuliertes char Array ist. Leider hast du nichts vom Scanner erwähnt, jetzt musste ich doch einen Blick in die API werfen, weil mich der Unterschied interessiert hat. Vllt. möchtest du deinen Beitrag kontrovers um den Scanner ergänzen evtl. interssiert es ja jemanden, dass Scanner und BufferedReader von java.lang.Object abgeleitet sind...
 
Zuletzt bearbeitet:

stg

Top Contributor
[OT]Was ist denn daneben daran, dass man den OP darauf hinweist, dass eine hier getroffene Aussage (zum Teil) Unsinn war? fischefr hat sich weder im Tonfall vergriffen noch sonst was.
Ein Scanner ist nun mal kein Reader und ein Reader kein Scanner ... beide sind für vollkommen verschiedene Aufgaben zuständig.
[/OT]
 
Zuletzt bearbeitet:
Ich finde es einfach nur lächerlich und unverschämt, einen Kommentar der schon längst abgeschlossen ist mit irgendwelchen Halbwahrheiten und Besserwisserein abzuwerten. Zumal die Aussage:
Falsch! BufferedReader und Scanner haben so rein gar nichts gemeinsam!
einfach nur falsch ist. Wer eine API lesen kann ist klar im Vorteil ^^. Schade das man unnötige Kommentare nicht runtervoten kann :(
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
J Überprüfen ob String eine Zahl ist Java Basics - Anfänger-Themen 2
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
T Prüfen, ob ein String eine Zahl ist Java Basics - Anfänger-Themen 10
C Binärzahl vom Typ String in eine Zahl vom Typ Integer umwandeln Java Basics - Anfänger-Themen 4
G Frage:Welche Methodne kann man eine Zahl bzw. ein String Java Basics - Anfänger-Themen 3
G überprüfen ob string eine zahl enthält Java Basics - Anfänger-Themen 6
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
I Wo am besten eine String Konstante initialisieren? Java Basics - Anfänger-Themen 5
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
A Wie gebe ich bei android eine string im programm aus? Java Basics - Anfänger-Themen 4
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
J Erste Schritte Wie kann ich einen String in eine If einbauen :)? Java Basics - Anfänger-Themen 12
OlafHD Einen String an eine Klasse übergeben Java Basics - Anfänger-Themen 2
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
O Prüfen ob ein String den selben Namen hat wie eine Booleanreihe? Java Basics - Anfänger-Themen 17
B String der eigentlich eine Ansammlung von HEX zeichen ist in datei schreiben in Hex Java Basics - Anfänger-Themen 8
B Wie aus einem Datum String eine Timestamp erzeugen Java Basics - Anfänger-Themen 6
T String returnen an eine DialogKlasse... Java Basics - Anfänger-Themen 12
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
M Eine kleine Frage bzw kleine Theorie frage String[arg] Java Basics - Anfänger-Themen 6
G Wieso ist eine String-Übergabe keine by-reference-Zuweisung? Java Basics - Anfänger-Themen 7
M String mit ist eine Zeile wenn in Textdatei geschrieben Java Basics - Anfänger-Themen 5
A String in eine Typvariable umwandenln Java Basics - Anfänger-Themen 13
G string Array in eine Vector packen Java Basics - Anfänger-Themen 10
P wie bekomme ich ein array in eine string variable Java Basics - Anfänger-Themen 11
B String zu eine zwei dimensionales Array Java Basics - Anfänger-Themen 6
P String eine rote Farbe geben? Java Basics - Anfänger-Themen 6
M ausm String eine Grafik erstellen Java Basics - Anfänger-Themen 4
C String in eine *.ini-Datei Java Basics - Anfänger-Themen 29
S Prüfen ob eine TextFeldeingabe String enthält Java Basics - Anfänger-Themen 5
S mit String eine Variable ansprechen Java Basics - Anfänger-Themen 5
O eine frage/problem zu string.split() Java Basics - Anfänger-Themen 2
R Werte aus einem String[][] in eine Datei schreiben. Java Basics - Anfänger-Themen 3
F externe programme ueber eine string starten Java Basics - Anfänger-Themen 2
V Passwort-String byteweise in eine Datei schreiben Java Basics - Anfänger-Themen 6
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
T String splitten Java Basics - Anfänger-Themen 3
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
T Platzhalter in String? Java Basics - Anfänger-Themen 14
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben