An die Programmierer : ich muss in JAVA einen int wert einlesen und als String wieder ausgeben zB 3 --> drei kann mir da bitte jemand helfen?

... komplette Frage anzeigen

7 Antworten

Wenn du Fragen stellst, bei denen du eine wirkliche Hilfestellung erwartest, würde ich dich im Gegenzug dazu bitten die Frage entsprechend genau zu stellen.

Anhand dem was man aus deiner Frage ableiten kann, kann man leider nur raten was du meinen könntest.

Bei Programmier-Fragen geht man einfach nicht davon aus, "was du wohl meinen könntest", sondern man möchte Konkret wissen, worin dein Problem besteht um dir helfen zu können. - Immerhin steckt derjenige, der eine Antwort schreibt ja auch Energie rein um dein Problem zu lösen. Also sei bitte so fair.

Hierfür gibt es im Detail-Bereich der Frage ein großes Textfeld in dem du deine Frage genau ausformulieren kannst. Des weiteren gibt es auch eine Code-Funktion, mti der du deine Codebeispiele Posten kannst. Genauso gäbe es auch alternativ Code-Hoster, die deinen Code mit Syntax-Highlight kostenlos und unkompliziert hosten, wie z.B.: "Hastebin.com".

Des weiteren:

Sag mal hast du die Frage nicht verstanden ?! Es geht darum mit dem Scanner einen integer einzulesen und diese eingelesene Zahl als String wieder auszugeben !

Ein ziemlich forscher Ton, der bei der Community sicherlich nicht sehr gut ankommt. Die du jedoch um Hilfe bittest.

Davon abgesehen glaube ich, dass niemand deine Frage so richtig verstanden hat. 

Entsprechend würde ich dich bitten:

  • Deine Frage nachträglich zu ergänzen
  • Solche Kommentare zu unterlassen
  • Und später die Frage ggf. mit "Noch eine Antwort bitte" nochmal zu aktualisieren.

Die Community hat viele Hilfsbereite Menschen in den diversen Themenbereichen die gerne bereit sind zu helfen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Cacikci
04.11.2016, 07:46

Wenn ich aber sage ich soll werte mit einem Scanner einlesen lassen und dann eine Antwort kommt wie "Kauf dir einen Scanner " kommt es so rüber als ob diese Person mich veräppeln will. Jeder der mit Java programmiert weiss was ein Scanner ist

0
Kommentar von androhecker
04.11.2016, 08:51

Die Frage selbst ist wirklich undeutlich formuliert, aber wenn man sich das Beispiel etwas genauer anschaut, sollte man die Frage verstehen.

0
Kommentar von SirNik
04.11.2016, 10:05

Und der Fragesteller sollte es sich nicht mit dir, KnusperPudding, oder dir, androhecker, verscherzen, sonst antwortet ihr ihm bestimmt gar nicht mehr. Und dann hat er den Salat....ihr seid eine der Kompetentesten und wer soll ihm dann noch antworten? ;)

0

Bis zu welchem Wert denn?

Bei (-20)-0-20 einfach einen Switch benutzen oder die Werte in einem Array speichern. Bei Zahlen bis hundert dann einfach die Zahlen in ihre Ziffern zerlegen und das Wort richtig zusammensetzen.
Bei 1000+ ist es wieder einfacher, die Zahl in Dreierblöcken genauso wie oben einlesen und an die entsprechenden Blöcke noch -tausend, -million, etc anfügen.
Man muss noch etwas mehr beachten, aber das solltest du auch selber merken.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Cacikci
04.11.2016, 07:44

Es gibt kein werte Bereich. Der Wert soll eingelesen werden von einem Scanner und dieser eingelesener wert also zB 100 soll dann als String also "hundert" ausgegeben werden

0
Kommentar von androhecker
04.11.2016, 08:45

Nun, dann musst du wohl die Methoden wie beschrieben kombinieren, eben bis zu Milliarden, etwas höheres als das lässt sich mit einer int nicht darstellen.

0

Wie sieht dein bisheriger Ansatz aus? Die Übung hätte auch ein guter Programmierer wahrscheinlich nicht mal eben in 10 Minuten aus den Fingern geschüttelt, weil da einiges an Code nötig wäre. Generell würde ich mit Arrays arbeiten, in denen die Zahlen als Strings gespeichert sind und den Wertebereich beim Entwickeln immer größer werden lassen.

Z.B.: Ich hätte ein Array mit den Werten bis einschließlich 20 (also ["", "Eins", "Zwei", "Drei", ... , "Neunzehn", "Zwanzig"] (=> Variable zahlArray). Ist die eingegebene Zahl <= 20, dann könnte man das direkt übersetzen, also z.B.

zahl = 13;

zahlWort = zahlArray[zahl] = "Dreizehn";

Wenn die Zahl >20 und <100 ist, dann bräuchtest ein zweites Array mit den Präfixen also ["", "", "Zwanzig", "Dreißig", "Vierzig", ... , "Neunzig"] => Variable praefixArray). Anschließend guckst du dir die erste und die zweite Stelle an (an die kommst du am einfachsten, indem du die Zahl temporär in einen String umwandelst). Wenn die zweite Stelle ungleich 0 ist, dann ist das Zahlwort

zahl = 49;

zahlString = zahl.toString(); // "49"

zahlWort = zahlArray[zahlString[1]] + "und" + praefixArray[zahlString[0]];

Also in dem Fall 49 = "Neun" + "und" + "Vierzig");

ansonsten ist es nur PraefixArray, also z.B.

zahl = 30;

zahlString = zahl.toString(); // "40"

zahlWort = praefixArray[zahlString[0]]; // dreißig.

Wenn die Zahl dann noch größer wird, dann kannst du das ganze  (möglicherweise sogar mit den beiden Arrays erweitern). Bei Zahlen >= 100 und < 1000 etwa

z.B. 345 = "Drei" + "Hundert" + "Fünf" + "und" + "Vierzig".

und dann noch weiter

6239 = "Sechs" + "Tausend" + "Zwei" + "Hundert" + "Neun" + "und"+ "Dreißig".

du musst halt bloß für jede Stelle das passende Wort finden. Später könnte man an dem Code noch einiges optimieren und kürzen, aber das ist Formsache.

Die Codebeispiele in meiner Antwort sind nicht Java, sondern nur Pseudocode, um das Prinzip zu erklären. Wie gesagt, man könnte dir besser helfen, wenn man sehen würde, was du schon programmiert hast und wo es bei dir konkret hakt.

Antwort bewerten Vielen Dank für Deine Bewertung

Als Ergänzung zu den gegebenen Antworten: eine Integer Variable kannst du ganz einfach mit + ""; zu einem String konvertieren. Natürlich in einer neuen Variablen speichern!

Antwort bewerten Vielen Dank für Deine Bewertung

Einfach ne replace Funktion?

Antwort bewerten Vielen Dank für Deine Bewertung

System.out.println(" Bitte einen String eingeben und mit Enter bestätigen");
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextLine());

Kann sein das du noch in deiner IDE in die Konsole klicken musst um einen Text eingeben zu können

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?