Zahlenausgabe- bräuchte einen Tipp

Status
Nicht offen für weitere Antworten.

maddin86

Mitglied
Hallo,

das Programm soll. wenn über die Kommandozeile z.B. "java Zahlenausgabe 55 20" eingegeben wird folgendes ausgeben:

"55 - fuenfundfuenfzig
20 - zwanzig".

Wie zerteile ich denn den String im array args "55" in n=5 und m=5 ?

Könntet ihr mir da mal auf die Sprünge helfen? Bin noch ziemlich planlos in Java :oops:

Java:
import EAjava.*;

public class Zahlenausgabe
{
 public static void main (String[] args)
 {
 // Variablendeklarationen
 String[] einer = new String[9];
 String[] zehner = new String[8];
 int i,
     j = args.length-1,
     n = 0,
     m = 0;
 
 // Füllen der Arrays
 einer[0] = "ein";
 einer[1] = "zwei";
 einer[2] = "drei";
 einer[3] = "vier";
 einer[4] = "fuenf";
 einer[5] = "sechs";
 einer[6] = "sieben";
 einer[7] = "acht";
 einer[8] = "neun";
 
 zehner[0] = "zwanzig";
 zehner[1] = "dreisig";
 zehner[2] = "vierzig";
 zehner[3] = "fuenfzig";
 zehner[4] = "sechzig";
 zehner[5] = "siebzig";
 zehner[6] = "achtzig";
 zehner[7] = "neunzig";
 
 for (i=0; i<=j; i++)
     {
     n = (int) args[i];
     m = (int) args[i];
     System.out.println(args[i] + " - " + einer[n] + "und" + zehner[m]);
     }
 }

}
 

Michael...

Top Contributor
Java:
n = (int) args[i];
m = (int) args[i];
Das kriegst Du doch garnicht kompiliert und selbst wenn wäre ja m==n.
Einzelne Zeichen eines Strings kann man mit charAt(int i) auslesen.
Ich würde aber die Strings zuerst komplett in echte zahlen umwandlen und dann weiterbearbeiten. Etwa so:
Java:
public class Zahlenausgabe {
	private String[] einer;
	private String[] zehner;
	
	public Zahlenausgabe() {
		einer = new String[] {"ein", "zwei", "drei", "vier", "fuenf", "sechs", "sieben", "acht", "neun"};
		zehner = new String[] {"zwanzig", "dreisig", "vierzig", "fuenfzig", "sechzig", "siebzig", "achtzig", "neunzig"};
	}
	
	public void schreibeZahlen(String[] zahlenString) {
		for (int i=0; i<zahlenString.length; i++) {
			int zahl = Integer.valueOf(zahlenString[i]).intValue();
			for (int n=0; n<=(zahl/10)+1; n++) {
				//Hier kannst Du z.B. so die einzeln Ziffern ermitteln und weiterverarbeiten;
				System.out.print(zahl%10 + ",");
				zahl = zahl/10;
			}
			System.out.println();
		}
	}
	
	public static void main (String[] args) {
		Zahlenausgabe zAusgabe = new Zahlenausgabe();
		if (args.length==0) {
			zAusgabe.schreibeZahlen(new String[] {"20", "13"});
		}
		else {
			zAusgabe.schreibeZahlen(args);
		}
	}
}
Achso, und diese zeilenlange Befüllen der Felder kann man abkürzen (siehe Konstruktor)
 
Zuletzt bearbeitet:

xiix

Mitglied
Die Kommentare sollten das Programm soweit mal erklären
(1) Also deine Ziele sind jetzt, das ganze mittels einem Algorithmus zu realisieren, wichtig dafür sind die Zusammenhänge was sich pro Stelle wie verändert z.B. zwischen 3 und 4 stellig
(2) Ausnahmen wie Zahlen die mit 0 enden wie 50 einbauen
(3) z.B. siebenundsibzig hierbei ist es wichtig, zu beachten an welcher Stelle man die 7 einsetzt und so auch die sieben zu sib abkürzt, denkansatz: eine public String getNumber(int zahl, String Stelle, int length) die dir jeweils die richtig ab oder auch nicht abgekürzte Zahl zurückgibt. Viel Erfolg!

PS: Wenn jemand eine bessere/effizientere Methode kennt einfach den Post ignorieren, und bitte beachten das ich absichtlich Zahlen "per Hand" zerlege und nicht die Stellen errechnen lasse. :)

Java:
public class asdfsdf 
{
	public static void main(String[] args) 
	{
		//Zerlegung in Einer, Zehner,...stelle
		
		//Beispiele
		String a = "5";
		String b = "51";
		String c = "987";
		String d = "1234";
		
		//Zerlegung in int
		int aa = Integer.parseInt(a);
		int bb = Integer.parseInt(b);
		int cc = Integer.parseInt(c);
		int dd = Integer.parseInt(d);
		
		//Wenn 1 stellig:
		if(aa<10)
		{
			System.out.println(aa);
			System.out.println("Einerstelle " + aa);
		}
		//Wenn 2 stellig:
		if(bb>9 && bb < 100)
		{
			System.out.println(bb);
			System.out.println("Einerstelle " + (bb%10));
			System.out.println("Zehnerstelle " + (bb/10));
		}
		//Wenn 3 stellig:
		if(cc>99 && cc < 1000)
		{
			System.out.println(cc);
			System.out.println("Einerstelle " + (cc%10));
			System.out.println("Zehnerstelle " + (cc/10%10));
			System.out.println("Hunderterstelle " + (cc/100));
		}
		//Wenn 4 stellig:
		if(dd>999 && dd < 10000)
		{
			System.out.println(dd);
			System.out.println("Einerstelle " + (dd%10));
			System.out.println("Zehnerstelle " + (dd/100%10));
			System.out.println("Hunderterstelle " + (dd/10%10));
			System.out.println("Tausenderstelle " + (dd/1000));
		}
		
		//Wenn 1 stellig:
		if(aa<10)
		{
			System.out.println(aa);
			System.out.println("5");
		}
		//Wenn 2 stellig:
		if(bb>9 && bb < 100)
		{
			System.out.println(bb);
			//ES ZS
			System.out.println((bb%10)+"und"+(bb/10)+"zig");
		}
		//Wenn 3 stellig:
		if(cc>99 && cc < 1000)
		{
			System.out.println(cc);
			//HS ES ZS
			System.out.println((cc/100)+"hundert"+(cc/10%10)+"und"+(cc%10)+"zig");
		}
		//Wenn 4 stellig:
		if(dd>999 && dd < 10000)
		{
			System.out.println(dd);
			//TS HS ZS ES
			System.out.println((dd/1000)+"tausend"+(dd/100%10)+"hundert"+(dd%10)+"und"+(dd/10%10)+"zig");
		}
	}
	
	public String getNumber(int zahl, String Stelle, int length)
	{
		//...
		//@return die silbe Sib / Sieben z.B.
	}
}
 

maddin86

Mitglied
Danke schonmal, werde ich später mal ausprobieren wie weit ich damit komme!

Was ich vergessen hatte zu erwähnen, das ganze muss nur zwischen 20 und 99 funktionieren, kleinere/größere zahlen kommen nicht in betracht.

Danke für den Hinweis zum befüllen des Arrays.. das mir das nicht selbst eingefallen ist :oops:
 
G

Gonzo17

Gast
Was ich vergessen hatte zu erwähnen, das ganze muss nur zwischen 20 und 99 funktionieren, kleinere/größere zahlen kommen nicht in betracht.

Joa, ist ja kein Problem. Dann machste vorher ne Abfrage und wenn die Zahl außerhalb deines erlaubten Bereichs liegt, gibst du nicht eine Zahl aus, sondern irgendeinen beliebigen Text.
 
B

bygones

Gast
dann ists ja net so schwer
Java:
public class MapTest {
    private static final String ZWANZIG = "zwanzig";
    private static final String[] ELEMENTS = {"zig", "ein", "zwei", "drei", "vier", "fuenf",
            "sechs", "sieben", "acht", "neun"};

    public static void main(String[] args) {
        for (String each : args) {
            int number = Integer.parseInt(each);
            int einser = number % 10;
            int zehner = number / 10;

            String text = "";
            if (zehner == 2) {
                text = einser == 0 ? ZWANZIG : ELEMENTS[einser] + "und" + ZWANZIG;
            }
            else if (einser == 0) {
                text = ELEMENTS[zehner] + ELEMENTS[0];
            }
            else {
                text = ELEMENTS[einser] + "und" + ELEMENTS[zehner] + ELEMENTS[0];
            }
            System.out.println(text);
        }
    }
}

der 20er bereich bedarf halt extra behandlung da er nicht der namenskonvention folgt...
 

maddin86

Mitglied
habe es nun wie folgt gemacht, läuft ganz gut, habt ihr noch verbesserungsvorschläge??

Java:
//Zahlenausgabe
import EAjava.*;

public class Zahlenausgabe
{
        public static void main (String[] args)
        {
        // Variablendeklarationen
        String[] einer = new String[] {"ein", "zwei", "drei", "vier", "fuenf", "sechs", "sieben", "acht", "neun"};
        String[] zehner = new String[]{"zwanzig", "dreisig", "vierzig", "fuenfzig", "sechzig", "siebzig", "achtzig", "neunzig"};
        int i,
        j = args.length-1,
        zahl = 0,
        erste = 0,
        zweite = 0;

        // Ausgabe
        System.out.println("");
        System.out.println("Die Zahlen lauten:");
        System.out.println("");

        // Ausgabe der Zahlen
        for (i=0; i<=j; i++)
                {
                zahl = Integer.valueOf(args[i]).intValue(); //Werte des Strings in Integer wandeln

                if (zahl < 20 ^ zahl > 99) //Kontrolle ob 19 < Zahl < 100
                        {
                        System.out.println("Die Zahl ist groesser 99 oder kleiner 20.");
                        }
                else
                        {
                        erste = (zahl/10);
                        zweite = (zahl%10);

                        if (zweite == 0) //Kontrolle ob die Zahl eine Einerstelle ungleich 0 hat
                                {
                                System.out.println(args[i] + " - " + zehner[erste-2]); //Ausgabe von Vielfachen von 10
                                }
                        else
                                {
                                System.out.println(args[i] + " - " + einer[zweite-1] + "und" + zehner[erste-2]); //Ausgabe aller anderen Zahlen
                                }
                        }
                }
        }
}
 
Zuletzt bearbeitet:

maddin86

Mitglied
eine frage hätte ich noch, ist zwar etwas OT aber egal:

Wenn ich die boolsche variable "nachlinks" durch eine tastaturabfrage auf true bzw. false setzen möchte, wie mache ich das genau?? so wie ich es versucht habe geht es nicht ganz:

Java:
                lire = konsole.readString("Nach links oder nach rechts?: (l/r) ");
                System.out.println("");
                if (lire == "l")
                   {
                   nachlinks = true;
                   }
                else
                    {
                    nachlinks = false;
                    }
 

faetzminator

Gesperrter Benutzer
wenn schon
Java:
if ("l".equals(lire))
ansonsten kannst du auch gleich folgendes schreiben
Java:
nachlinks = "l".equals(lire);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
S Zahlenausgabe Problem Java Basics - Anfänger-Themen 14
I Zahlenausgabe Java Basics - Anfänger-Themen 2
T 5-stellige Zahlenausgabe Java Basics - Anfänger-Themen 2
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
algebraiker Collections Bräuchte Hilfe bei dem Algorithmus - LinkedHashMap Java Basics - Anfänger-Themen 2
F bräuchte eine bessere entwicklungsumgebung Java Basics - Anfänger-Themen 2
S bräuchte hilfe bei einem kleinen prog Java Basics - Anfänger-Themen 3
E Anfänger bräuchte Hilfe - Eingabezeile ! Java Basics - Anfänger-Themen 10
K Bräuchte dringend Hilfe bei einer Schulaufgabe Java Basics - Anfänger-Themen 2
B Bräuchte ein paar Sachen für mein Clientprogramm! Java Basics - Anfänger-Themen 6
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
S Timer vs ExecutorService: jeden Sonntag um 14.00 Uhr einen Task starten..? Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
N Kann man einen Iterator nur einmal verwenden Java Basics - Anfänger-Themen 5
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
N Gibt es hierfür einen Shortcut Java Basics - Anfänger-Themen 5
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
K Wie verneine ich einen Regex? Java Basics - Anfänger-Themen 2
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
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
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
Poppigescorn Mithilfe einer Arrayliste einen Notenspiegel ausgeben Java Basics - Anfänger-Themen 12
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
L GUI- wie cancel ich einen Timer? Java Basics - Anfänger-Themen 10
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
Devin Wo kann man einen Java Lehrplan finden? Java Basics - Anfänger-Themen 5
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
S First Time Mave: Wie ergänze ich einen Source-Folder? Java Basics - Anfänger-Themen 10
M Pfadprobleme - Zugriff auf einen Ordner im Workspace Java Basics - Anfänger-Themen 17
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
O Ziehen im Array um einen Schritt in eine einzige beliebige Richtung Java Basics - Anfänger-Themen 5
N Wie kann ich einen String wieder zusammensetzen und ausgeben lassen? Java Basics - Anfänger-Themen 9
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
J Wie kann ich z.B. einem int-Wert einen String-Wert zuweisen? Java Basics - Anfänger-Themen 2
steven789hjk543 Kann man mit Java und Eclipse einen Virus programmieren? Java Basics - Anfänger-Themen 13
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
T Einen Stern malen Java Basics - Anfänger-Themen 32
T Einen Stern malen Java Basics - Anfänger-Themen 2
L Files verschieben in einen Ordner Java Basics - Anfänger-Themen 87
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
J Mit for Schleife einen String Rückwärts befüllen Java Basics - Anfänger-Themen 9
J Einen Buttonklick in Label anzeigen Java Basics - Anfänger-Themen 6
S Gibt es einen guten kostenlosen Online-kurs Java Basics - Anfänger-Themen 2
W Wie programmiere ich einen Potenzrechner? Java Basics - Anfänger-Themen 5
B ArrayList besitzt einen Wert zu wenig Java Basics - Anfänger-Themen 16
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
B Wie instanzisiert man einen Cursor richtig? Java Basics - Anfänger-Themen 3
S Interface (WindowBuilder) Panels in einen Frame einfügen Java Basics - Anfänger-Themen 10
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
C Wie erstellt man einen Timer/Delay? Java Basics - Anfänger-Themen 1
C Wie kann ich einen User Input mit einer If-Anweisung verbinden? Java Basics - Anfänger-Themen 5
J Guten tag, Ich hoffe ihr habt einen schönen Sonntag und könnt mir helfen Java Basics - Anfänger-Themen 2
D Methoden 2 TextWatcher auf einen EditText Java Basics - Anfänger-Themen 4
I Datentypen input.nextCharAt(0) wirft einen Fehler Java Basics - Anfänger-Themen 3
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
S Bestehendes Java Programm, einen festen Wert ändern Java Basics - Anfänger-Themen 17
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
R Übergeben eines Array Strings an einen Spinner Java Basics - Anfänger-Themen 4
Bluedaishi Einen Betrag X auf X Tage verteilen Java Basics - Anfänger-Themen 14
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
J In Java einen Ton erzeugen Java Basics - Anfänger-Themen 8
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
V Arrays die einen Termin speichen Java Basics - Anfänger-Themen 5
G Wie gebe ich einen Dateipfad in RandomAccessFile an? Java Basics - Anfänger-Themen 2
R Wie kann ich einen Objekt zu Instanzvariable speichern ? Java Basics - Anfänger-Themen 10
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
S Das Anführungszeichen(") Zeichen in einen String setzen Java Basics - Anfänger-Themen 1
P Einen String mittig zeichnen? Java Basics - Anfänger-Themen 1
J Erste Schritte Wie kann ich einen String in eine If einbauen :)? Java Basics - Anfänger-Themen 12
G Wie kann ich einem StringBuilder einen int Wert formatiert hinzufügen? Java Basics - Anfänger-Themen 8
P Einen Ordner mit Dateien hochladen [FTP] Java Basics - Anfänger-Themen 2
OlafHD Einen String an eine Klasse übergeben Java Basics - Anfänger-Themen 2
OlafHD Gibt es einen Laufbalken? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben