Fehlersuche bzgl. Array-Keys

Psynox

Mitglied
Folgender Code:

Java:
public class CharArrayOps {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
			int[] input_arr = new int[100];
			int i = 0;
			boolean eingabe = true;

			System.out.println("Bitte geben sie eine Testzeile ein:");
			
			while (eingabe == true) {
				input_arr[i] = System.in.read();
				switch (input_arr[i]) {
				case 13: eingabe = false;
				default: i++;;
				}
			}
			System.out.println("input_arr hat " + (input_arr.length) + "Keys");
			contains(input_arr);
	}
	
	public static void contains(int[] arr) {
		int i = 0;
		boolean transfer  = true;
		while (transfer == true) {
			switch (arr[i]) {
			case 13: transfer = false;
			default: i++;
			}
		}
		int[] new_arr = new int[i-1];
		new_arr = arr;
		System.out.println("new_arr hat " + (i-1) + "Keys");
		output(new_arr);
	}
	
	public static void output(final int[]printed_arr) {
		System.out.println("printed_arr hat " + printed_arr.length + "Keys");
		for (int i=0; i<printed_arr.length; i++)
            System.out.print((char)printed_arr[i]);
        System.out.println();
	}
}

erzeugt folgende Ausgabe:

Bitte geben sie eine Testzeile ein:
jk
input_arr hat 100Keys
new_arr hat 2Keys
printed_arr hat 100Keys
jk

So nun zu meinem Problem. Ich schätze der Code an und für sich ist selbsterklärend, darum möchte ich auch nicht weiter drauf eingehen wofür er da ist und was er tun soll.

Mein Problem ist das 'printed_arr' in der function 'output' 98Keys zuviel hat. Ich habe ein wenig rumgespielt und es hat sich herausgestellt das printed_arr immer genauso viele Keys hat wie input_arr. Die Frage wieso hat dieser 100 wenn er aber über den Parameter einen Array mit 2 Keys übermittelt bekommt?

Ich hoffe ich bin hier richtig und ihr könnt mich auf den Fehler aufmerksam machen. Den ich sitze schon seit längeren an diesem Problem und weiß leider nicht woran es liegt.

In der Hoffnung auf schnelle Hilfe

Psynox
 

Psynox

Mitglied
Leider hat mich das jetzt nicht ganz so weitergebracht wie erhofft.
Könntest du vielleicht ein Stückchen ausführlicher werden?
 

Psynox

Mitglied
So ok hab versucht aus dem was du schriebst was herauszufinden und ich habe zwar keine Lösung für mein aktuelles Problem gefundne doch weiß ich jetzt was du meinst. Die Frage ist jetzt nur wie löse ich das am elegantesten mit "Anfänger"-Methoden?
 

Psynox

Mitglied
So ok ich habe das Problem gelöst.
Statt new_arr = arr; (new_arr wird zu referenz von arr, dadurch auch gleiche eigenschaften) habe ich eine for-Schleife eingebaut. Ist zwar nicht elegant aber es funktioniert fürs erste.

Danke nochmal an sicLotus für den spärlichen, aber doch hilfreichen Ansatz.


Lösung meines Problems:
Java:
public class CharArrayOps {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
			int[] input_arr = new int[100];
			int i = 0;
			boolean eingabe = true;

			System.out.println("Bitte geben sie eine Testzeile ein:");
			
			while (eingabe == true) {
				input_arr[i] = System.in.read();
				switch (input_arr[i]) {
				case 13: eingabe = false;
				default: i++;;
				}
			}
			System.out.println("input_arr hat " + (input_arr.length) + "Keys");
			contains(input_arr);
	}
	
	public static void contains(int[] arr) {
		int i = 0;
		boolean transfer  = true;
		while (transfer == true) {
			switch (arr[i]) {
				case 13: transfer = false;
				default: i++;
			}
		}
		int[] new_arr = new int[i-1];
		
		for (int j=0; j<(i-1); j++) {
			new_arr[j] = arr[j];
		}
		
		System.out.println("new_arr hat " + new_arr.length + "Keys");
		output(new_arr);
	}
	
	public static void output(final int[] printed_arr) {
		System.out.println("printed_arr hat " + printed_arr.length + "Keys");
		for (int i=0; i<printed_arr.length; i++)
            System.out.print((char)printed_arr[i]);
        System.out.println();
	}
}
 

Landei

Top Contributor
Dein ganzes Programm ist - mit Verlaub gesagt - ziemlich sinnlos.

Wenn du eine Zeile einlesen willst, geht das so:
Java:
import java.util.Scanner;
...
Scanner sc = new Scanner(System.in);
String line = sc.getNextLine();

Willst du das in einem Array mit passender Größe, geht das so:
Java:
char[] array = line.toCharArray();

Falls es für das ganze Herumkopieren keinen wirklich guten Grund gibt, hast du da eine hübsche Rube-Goldberg-Maschine gebaut...
 

sicLotus

Bekanntes Mitglied
@Psynox

Sparlich wars, das stimmt, aber so hast du glaube ich am meisten davon gelernt und noch viel wichtiger, es auch verstanden :)

*THUMBSUP* das du dein Problem alleine lösen konntest :)

Dabei würd ich dir den Tipp geben so schnell wie möglich von den Klassenmembern wegzukommen und langsam in Richtung OOP hinzuarbeiten :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Fehlersuche-kann mir jemand helfen? Java Basics - Anfänger-Themen 46
T Fehlersuche Java Basics - Anfänger-Themen 12
A Fehlersuche Java Basics - Anfänger-Themen 2
MR._FIRE_Flower Programm Fehlersuche Java Basics - Anfänger-Themen 16
T Hilfe bei der Fehlersuche Java Basics - Anfänger-Themen 23
D Fehlersuche Java Basics - Anfänger-Themen 9
S brauche hilfe bei Fehlersuche Java Basics - Anfänger-Themen 7
1 Fehlersuche Java Basics - Anfänger-Themen 4
C Fehlersuche Adressbuch *Anfänger* Java Basics - Anfänger-Themen 5
L ReplaceALL - Fehlersuche Java Basics - Anfänger-Themen 11
A Java Fehlersuche Java Basics - Anfänger-Themen 2
N Hoffnungslose Fehlersuche Java Basics - Anfänger-Themen 11
I Anfängerfrage: Fehlersuche Java Basics - Anfänger-Themen 2
S Fehlersuche(NullPointerException) Java Basics - Anfänger-Themen 5
S Fehlersuche bzw beheben Java Basics - Anfänger-Themen 9
N Fehlersuche Printwriter Java Basics - Anfänger-Themen 6
N Hilfe bei Fehlersuche Java Basics - Anfänger-Themen 2
B Fehlersuche bei LinkedList Java Basics - Anfänger-Themen 3
w0ddes Array out of Bounds - Fehlersuche Java Basics - Anfänger-Themen 2
? hilfe bei Fehlersuche Sortierung List Java Basics - Anfänger-Themen 5
R Fehlersuche - KeyListener, KeyAdaper - Nichts Klappt! Java Basics - Anfänger-Themen 2
D Zeichen im String ändern -> Fehlersuche Java Basics - Anfänger-Themen 7
S Filereader funktioniert nicht! Fehlersuche Java Basics - Anfänger-Themen 9
S Fehlersuche Java Basics - Anfänger-Themen 6
G Fehlersuche bei einer Rechenoperation Java Basics - Anfänger-Themen 2
G Hilfe bei fehlersuche Java Basics - Anfänger-Themen 3
N Fehlersuche. Tasks Java Basics - Anfänger-Themen 14
D Fehlersuche actionPerformed Java Basics - Anfänger-Themen 6
D Fehlersuche: Jar erstellen Java Basics - Anfänger-Themen 6
B Fehlersuche Java Basics - Anfänger-Themen 4
F Fehlersuche erfolglos Java Basics - Anfänger-Themen 3
F fehlersuche. Java Basics - Anfänger-Themen 13
J Fehlersuche - illegal start of expression Java Basics - Anfänger-Themen 3
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
J Worte auf Gültigkeit bzgl. Alphabet testen Java Basics - Anfänger-Themen 1
W Bestätigung bzgl Shadowing/this Java Basics - Anfänger-Themen 7
D Frage bzgl. Interfaces Java Basics - Anfänger-Themen 10
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5
M Frage bzgl. Testbarkeit von Methoden in Relation zu Ihren Abhängigkeiten Java Basics - Anfänger-Themen 11
J Klassen Hilfe bei unbekannten Zeilen bzgl. Klassen / Komponenten Java Basics - Anfänger-Themen 12
K Frage bzgl. Multithreading Java Basics - Anfänger-Themen 5
M Frage bzgl. Oracle Java Zertifizierung Java Basics - Anfänger-Themen 4
1 Frage bzgl. Polymorphismus Java Basics - Anfänger-Themen 6
C Best Practice Was ist die elegantere Lösung bzgl. Klassenaufteilung in Robocode ? Java Basics - Anfänger-Themen 3
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
X Frage zur Vererbung (bzgl Supercontruktor) Java Basics - Anfänger-Themen 7
F Verständisproblem bzgl. nicht Vorhandensein von Call-by-reference Java Basics - Anfänger-Themen 2
L Frage bzgl. Threads beim Bilder laden Java Basics - Anfänger-Themen 3
0x7F800000 Elemente einer Äquivalenzklasse bzgl einer Ordnung vereinen? Java Basics - Anfänger-Themen 18
P Verständnis bzgl. MVC Java Basics - Anfänger-Themen 11
P Frage bzgl. Class Sharing Java Basics - Anfänger-Themen 2
G Dringende Frage bzgl. meines Codes Java Basics - Anfänger-Themen 30
C Frage bzgl. main Java Basics - Anfänger-Themen 2
C Frage bzgl. action von Button Java Basics - Anfänger-Themen 6
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null 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
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben