Falsche Ausgabe

soong

Mitglied
Hallo Leute! Bin Neuling in Java, habt bitte Nachsicht :oops:

Habe ein Programm, dass Zahlen in "Digitalschrift" umwandelt:

Java:
public class banner {

	public static final String[][] numbers = {
			
			{" ##### ",
			 "#     #",
			 "#     #",
			 "#     #",
			 "#     #",
			 "#     #",
			 " ##### "},	

			{"  #  ",
			 " ##  ",
			 "# #  ",
			 "  #  ",
			 "  #  ",
			 "  #  ",
			 "#####"},
			 
			{" ##### ",
			 "#     #",
			 "      #",
			 " ##### ",
			 "#      ",
			 "#      ",
			 "#######"},	

			{" ##### ",
			 "#     #",
			 "      #",
			 " ##### ",
			 "      #",
			 "#     #",
			 " ##### "},	

			{"#      ",
			 "#    # ",
			 "#    # ",
			 "#    # ",
			 "#######",
			 "     # ",
			 "     # "},

			{"#######",
			 "#      ",
			 "#      ",
			 "###### ",
			 "      #",
			 "#     #",
			 " ##### "},

			{" ##### ",
			 "#     #",
			 "#      ",
			 "###### ",
			 "#     #",
			 "#     #",
			 " ##### "},

			{"#######",
			 "#    # ",
			 "    #  ",
			 "   #   ",
			 "  #    ",
			 " #     ",
			 "#      "},

			{" ##### ",
			 "#     #",
			 "#     #",
			 " ##### ",
			 "#     #",
			 "#     #",
			 " ##### "},	

			{" ##### ",
			 "#     #",
			 "#     #",
			 " ######",
			 "      #",
			 "#     #",
			 " ##### "}	
	};
	
	public static void main(String[] args) {
		
		String input;

		
		if(args.length == 0) {
			System.out.println("Keine Parameter uebergeben.");
			System.exit(0);
	
		} else {
			if(args.length > 10) {
				input = args[0];
				System.out.println("Parameter verkuerzt.");
				input = input.substring(0, 10);
			}
			
			input = args[0];			
		
			
			for(int i = 0; i < input.length(); i++) {
 				if(!Character.isDigit(input.charAt(i))) {
					System.out.println("Parametereingabe ungueltig, da nur Ziffern erlaubt sind.");
					System.exit(0);
				}
			}
		
			
			String zeichenkette = input;

			// Ausgabe der Zahlen
			for (int line = 0; line < numbers[0].length; line++) {
				for (int i = 0; i < zeichenkette.length(); i++) {
					int index = zeichenkette.charAt(i) - '0';
					if (index >= 0 && index <= 9) {
						System.out.print(numbers[index][line] + " ");
					}
					if (zeichenkette.charAt(i) == ' ') {
						System.out.print("");
					}
				}
				System.out.println();
			}
		}
	}


}

Mein Problem ist, dass dieser Block scheinbar völlig ignoriert wird:

Java:
if(args.length > 10) {
	input = args[0];
	System.out.println("Parameter verkuerzt.");
	input = input.substring(0, 10);
}

Ich möchte dass maximal 10 Zahlen in der Konsole ausgegeben werden. Andernfalls verschiebt sich alles.

Wo liegt das Problem, warum fängt er es nicht ab?

Danke im Voraus!:)
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
Java:
if(args.length > 10) {
	input = args[0];
	System.out.println("Parameter verkuerzt.");
	input = input.substring(0, 10);
}

Dieser Code sorgt nur dafür, dass das 1.Argument auf max 10 Zeichen gekürzt wird. Alle anderen Argumente können immer noch mehr als 10 Zeichen enthalten
Und das wird auch nur gemacht wenn du mehr als 10 Argumente übergibst. Bei weniger Argumenten wird dieser Code nicht ausgeführt.

Hier liegt also ein logischer Denkfehler vor :)

Java:
			if(args.length > 10) {
				input = args[0];
				System.out.println("Parameter verkuerzt.");
				input = input.substring(0, 10);
			}
			input = args[0];

Hier liegt ebenfalls ein Denkfehler vor:
Wenn dein "if" erfüllt ist manipulierst du das 1.Argument.
Nach dem "if" holst du dir wieder den ungeänderten Wert aus den Argumenten!
 
Zuletzt bearbeitet:

Joose

Top Contributor
Java:
	public static void main(String[] args) {
		String input;
		if(args.length == 0) {
			System.out.println("Keine Parameter uebergeben.");
			System.exit(0);
		} else {
			if(args.length > 10) {
				input = args[0];
				System.out.println("Parameter verkuerzt.");
				input = input.substring(0, 10);
			}
			input = args[0];			
		}
	}

Dieses Codestück musst du entsprechend anpassen:

Das Array "args" beinhaltet alle Argumente welche du an das Programm übergibst.
Deine 1.if-Abfrage ist hier schon richtig, wenn kein Argument übergeben wird dann beendet sich das Program
Werden hingegen Argumente übergeben (eines oder mehr) dann willst du das 1.Argument auf maximal 10 Zeichen kürzen (wenn es länger ist)

Du brauchts nur überlegen:
"if(args.length > 10) {" - Was willst du überprüfen ob es Länger als 10 ist?
"input = args[0];" - diese Zeile hast du doppelt, wann musst du dir den Input aus den argumenten holen?
 

soong

Mitglied
Ja, ich will die Anzahl der Argumente überprüfen und wenn sie länger als 10 Ziffern sind, dann sollen nur die ersten 10 Ziffern auch übergeben werden. Der Input kommt erst dann, wenn das Argument mehr als 0 Zeichen hat und maximal 10.

Nur ist die Frage wie ich das mit der Übergabe mache? Wenn ich "input = args[0];" aus der zweiten If lösche mekerte er, dass die input-variable vermutlich nicht initialisiert wurde.
 

Joose

Top Contributor
Ja, ich will die Anzahl der Argumente überprüfen und wenn sie länger als 10 Ziffern sind, dann sollen nur die ersten 10 Ziffern auch übergeben werden. Der Input kommt erst dann, wenn das Argument mehr als 0 Zeichen hat und maximal 10.

Dir ist glaub ich noch nicht klar was der Unterschied zwischen dem Array args und dem Inhalt dieser Argumente/Strings ist.

Jedem Java-Programm beim Start Argumente übergeben werden.
Dieser Argumente kannst du in der main-Methode abfragen -> String[] args.

Du willst zuerst mal kontrollieren ob mindestens EIN Argument mitgegeben wurde. (Prüfe die Länge des Arrays)
Danach musst du dir das 1.Argument aus dem Array holen und dieses auf eine richtige Formatierung prüfen. (Zugriff auf das Array args mit Index 0 und in eine String Variable speichern)
 

soong

Mitglied
Habs gelöst!
Ich wollte die Länge des ersten Argumentes überprüfen. Hab mich blöd ausgedrückt, Verzeihung ))
Code:
if(args[0].length() > 10) {	 	
   System.out.println("");
   input = input.substring(0, 10);
}
So klappt es.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
T Falsche Ausgabe ???? Java Basics - Anfänger-Themen 13
C Klammern einlesen!!! Falsche Ausgabe!!!! Java Basics - Anfänger-Themen 4
S Falsche Ausgabe Java Basics - Anfänger-Themen 3
S Falsche Ausgabe? Java Basics - Anfänger-Themen 2
E falsche Ausgabe Java Basics - Anfänger-Themen 7
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
volcanos HashSet und Iterator -> Falsche Sortierreihenfolge ? Java Basics - Anfänger-Themen 18
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
D falsche eingabe erkennen Java Basics - Anfänger-Themen 2
F Wieso wird immer die falsche Mausposition angegeben? Java Basics - Anfänger-Themen 1
K falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
L Falsche Methode wird geladen Java Basics - Anfänger-Themen 2
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
T Input/Output Falsche Eingabe ausgeben Java Basics - Anfänger-Themen 3
R StringBounds falsche Ergebnisse Java Basics - Anfänger-Themen 5
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
W Array in String und String in Array - falsche Ausgaben Java Basics - Anfänger-Themen 20
M Input/Output ISBN Leser - falsche Eingabe ausgeben Java Basics - Anfänger-Themen 2
V Personenverwaltung mit List<>, falsche Ausgaben Java Basics - Anfänger-Themen 5
R Methoden Switch wählt das Falsche Java Basics - Anfänger-Themen 17
K Falsche Methode Java Basics - Anfänger-Themen 3
J Falsche Darstellung von Float Java Basics - Anfänger-Themen 2
M Falsche Eingabe wiederholen lassen Java Basics - Anfänger-Themen 2
W Methoden Falsche Felder von Methode belgegt Java Basics - Anfänger-Themen 14
M falsche implementierung von currentTimeMillis() ? Java Basics - Anfänger-Themen 14
F charAt-Methode liefert falsche Unicode-Werte Java Basics - Anfänger-Themen 8
P Falsche Werte bei Zeitmessungen Java Basics - Anfänger-Themen 7
Helgon Falsche Zeichen im Text Java Basics - Anfänger-Themen 10
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
G Bubblesort - Falsche Sortierung Java Basics - Anfänger-Themen 6
D Kriege falsche MD5 Java Basics - Anfänger-Themen 12
R run ->eclipse ruft falsche Programme auf Java Basics - Anfänger-Themen 5
D p q formel gibt zum Teil falsche Werte aus Java Basics - Anfänger-Themen 5
S Falsche Version? Java Basics - Anfänger-Themen 2
C Falsche Zeit Java Basics - Anfänger-Themen 2
V Falsche Augabe Java Basics - Anfänger-Themen 16
S Falsche Reihenfolge von Methodenaufrufen Java Basics - Anfänger-Themen 8
H Falsche Eingabe über try-catch abfangen Java Basics - Anfänger-Themen 2
K Verschiebeoperatoren - manchmal falsche Ergebnisse Java Basics - Anfänger-Themen 7
L Datenbankanbindung ODBC falsche pfadangabe? Java Basics - Anfänger-Themen 3
O Falsche Bed. (ein überlauf) seh den Fehler aber nicht. Java Basics - Anfänger-Themen 3
G static array liefert falsche Werte zurück Java Basics - Anfänger-Themen 2
L Wegen TableSorter wird falsche Zeile einer Tabelle gelöscht? Java Basics - Anfänger-Themen 2
G falsche Version Java Basics - Anfänger-Themen 3
L Falsche Umsetzung von MVC, brauche Hilfe Java Basics - Anfänger-Themen 6
D Tabelle -> Daten eingeben -> Falsche erhalten Java Basics - Anfänger-Themen 9
F Falsche Daten aus Datei Java Basics - Anfänger-Themen 2
G Falsche Java befehle, doch was ist falsch? Java Basics - Anfänger-Themen 9
C falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
M Falsche do-Schleife? Java Basics - Anfänger-Themen 4
D Falsche Datumsausgabe? Java Basics - Anfänger-Themen 5
J erhalte falsche Kalenderwoche - wo ist der Fehler? Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25

Ähnliche Java Themen

Neue Themen


Oben