String array

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
bin grade dabei ein String array zu erstellen. Ich lese ein datei in ein char array. Dieses char array wandle ich in einen String um und den String teile ich nach jeder zeile. Dann will ich jede zeile in ein array elemt eingelsen habe so das ich sie mit z.B. entrys_fragen[4] ansprechen kann. Das ganze funktioniert aber noch cniht so ganz. kann mir vieleicht jemand nen tipp geben woran es liegt?

Code:
FileReader fr_fragen = new FileReader(f_fragen);
char[] c_fragen = new char[(int) f_fragen.length()];
fr_fragen.read(c_fragen);	
String smtp_fragen =new String(c_fragen);	
String[] entrys_fragen = new String[20];
entrys_fragen = smtp_fragen.split("\n");
 
S

SlaterB

Gast
entrys_fragen musst du nicht vorher mit new String[20]; anlegen,
schreibe direkt

String[] entrys_fragen = smtp_fragen.split("\n");

---------

so, und was ist nun die Frage? der Code sieht gar nicht übel aus,
muss man sich zu " Das ganze funktioniert aber noch cniht so ganz. " selber was zusammenraten? ;)

Tipp: übe erstmal mit einem manuell im Programm erstellten String statt mit einer Datei,
dann kann das auch jeder hier im Forum nachvollziehen
 
G

Guest

Gast
ahso, das wusste ich nicht! Danke

habs grad nochma nen bischen umgebaut! brauch das ganze nämlich 3mal... aber es läuft noch nciht so ganz..... :-( ich bekomme immer die fehlermeldung "ArrayIndexOutOfBoundsException"

Code:
zufall=(int) (Math.random()*maximum+1);
		System.out.println ("Zufallszahl: "+ zufall);
      
		File f_fragen = new File("fragen.dat");// File
		File f_woerter = new File("woerter.dat");// File
		File f_antworten = new File("antworten.dat");// File
		
		try { 
			FileReader fr_fragen = new FileReader(f_fragen);
			FileReader fr_woerter = new FileReader(f_woerter);
			FileReader fr_antworten = new FileReader(f_antworten);
			
			char[] c_fragen = new char[(int) f_fragen.length()];
			char[] c_woerter = new char[(int) f_woerter.length()];
			char[] c_antworten = new char[(int) f_antworten.length()];
			
			fr_fragen.read(c_fragen);	
			fr_woerter.read(c_woerter);
			fr_antworten.read(c_antworten);
			
			String smtp_fragen =new String(c_fragen);
			String smtp_woerter =new String(c_woerter);
			String smtp_antworten =new String(c_antworten);
			
			// Den String bei Zeilenumbruch teilen und die einzelnen
			// Teile (=Zeilen) in ein array of string schreiben
			String[] entrys_fragen = smtp_fragen.split("\n");
			String[] entrys_woerter = smtp_woerter.split("\n");
			String[] entrys_antworten = smtp_antworten.split("\n");

			myquestion=entrys_fragen[zufall];
			myanswer=entrys_antworten[zufall];
			myword=entrys_woerter[zufall];
			
			}catch (IOException ioe) { // Falls ein Fehler auftreten sollte
				System.out.println("IOException: " + ioe.toString()); // Fehlermeldungausgeben
				System.out.println(" Fehler beim Bearbeiten der Datendatei!");
				System.exit(0);// Beenden
			}
 
S

SlaterB

Gast
na supi, nun machste wieder 1x draus, damit du das Forum nicht mit Wiederholung vollspamst ;)

ersetze
myquestion=entrys_fragen[zufall];
durch
Code:
if (zufall < entrys_fragen.length) {
   myquestion=entrys_fragen[zufall]; 
} else {
   System.out.println("denkste");
}
 
G

Guest

Gast
also, das klappt soweit erstmal ganz gut! aber er hat probleme die sätze einzulesen. mit den einzelen wörtern passt das, abe rnich mti den ganzen sätzen
 
S

SlaterB

Gast
um bei deiner Genauigkeit zu bleiben: die Lösung enthält Vokale und Konsonanten,

wenns genauer werden soll, dann stelle genauere Fragen
 

ARadauer

Top Contributor
"aber er hat probleme die sätze einzulesen"
werd konkreter! welche probleme?
wie sehen die daten genau aus?

hast du das, smtp_fragen.split("\n"); , verstanden?

Hast du verstanden warum er eine "ArrayIndexOutOfBoundsException" geworfen hat?
Du hast durch dein maximum, dass wahrscheinlich höher, als die anzahl der felder ist, auf ein element zugegriffen das es nicht gibt.
 
G

Guest

Gast
was für eine ausagekräftige antwort :D ich bin nich der profi in java, hätt ja sein können das man anhand meines bisher geposteten codes schon sehen könnte das es mit ganzen sätzen probleme gibt.

So, ich hab noch einmal ein bischen was veränder(Habe bei den dateien mit sätzen am ende jedes satzes jeweils ein"#" eingefügt und lasse jetzt da trennen)
Bei den einzelnen wörtern hat er noch da sproblem das hinter dem einzelen Wort noch ein leerzeichen mit eingelesen wird. Woran kann das liegen? eigentlich müsste doch direkt VOR dem leerzeichen das wort getrennt werden!
(auch auf die gefahr hin das jetzt kommt "spamm doch nciht so viel quellcode")
Code:
		zufall=(int) (Math.random()*maximum);
		System.out.println ("Zufallszahl: "+ zufall);
      
		File f_fragen = new File("fragen.dat");// File
		File f_woerter = new File("woerter.dat");// File
		File f_antworten = new File("antworten.dat");// File
		
		try { 
			FileReader fr_fragen = new FileReader(f_fragen);
			FileReader fr_woerter = new FileReader(f_woerter);
			FileReader fr_antworten = new FileReader(f_antworten);
			
			char[] c_fragen = new char[(int) f_fragen.length()];
			char[] c_woerter = new char[(int) f_woerter.length()];
			char[] c_antworten = new char[(int) f_antworten.length()];
			
			fr_fragen.read(c_fragen);	
			fr_woerter.read(c_woerter);
			fr_antworten.read(c_antworten);
			
			String smtp_fragen =new String(c_fragen);
			String smtp_woerter =new String(c_woerter);
			String smtp_antworten =new String(c_antworten);
			
			// Den String bei Zeilenumbruch teilen und die einzelnen
			// Teile (=Zeilen) in ein array of string schreiben

			String[] entrys_woerter = smtp_woerter.split("\n");
			String[] entrys_antworten = smtp_antworten.split(" #");
			String[] entrys_fragen = smtp_fragen.split(" #");

			if (zufall < entrys_fragen.length) {
				   myquestion=entrys_fragen[zufall];
				   System.out.println(myquestion);
			}
			
			if (zufall < entrys_woerter.length) {
				   myword=entrys_woerter[zufall];
				   System.out.println(myword);
			}
			
			if (zufall < entrys_antworten.length) {
				   myanswer=entrys_antworten[zufall];
				   System.out.println(myanswer);
			}
			
			}catch (IOException ioe) { // Falls ein Fehler auftreten sollte
				System.out.println("IOException: " + ioe.toString()); // Fehlermeldungausgeben
				System.out.println(" Fehler beim Bearbeiten der Datendatei!");
				System.exit(0);// Beenden
			}
 
S

SlaterB

Gast
> Bei den einzelnen wörtern hat er noch da sproblem das hinter dem einzelen Wort noch ein leerzeichen mit eingelesen wird. Woran kann das liegen?

niemand kennt deine Datei,
warum programmierst du das ganze nicht kinderleicht und absolut klar für die gesamte Weltbevölkerung mit

String beispielDatei = "wort1 wort\nwort3";
?


(char[] c_fragen = beispielString.toCharArray(); )

es sei denn natürlich, mit String gehts, aber mit Datei nicht, dann muss man genauer mit Datei testen
 
G

Guest

Gast
ähm das ist eine ganz normale txt datei wo ganz normal wörter untereinander stehen!

Hund
Maus
Katze
Baum
Esel
Affe
elefant


usw.... das stell ich mir unter einer datei vor in der nur einzelen wörter stehen. Klar könnt ich die wörter den variablen auhc direkt zuweisen, aber wenn man mal die wörter ändern, welche hinzufügen will oderso musste quasi das halbe programm neuschreiben. da is es doch viel einfacher wenn man eine externe datei hat in der die alle drinne liegen. Hatte das in einen vorheriegen programm auch schonmal so gemacht und es läuft(bis heute) ohne probleme!
 
S

SlaterB

Gast
auf jeden Fall,
es geht allein darum, für den Moment dein Programm zu testen, und was du in deiner Datei hast kann nunmal niemand sehen,
teste es mit einem String, der die Datei simuliert, dann haben alle die gleichen Bedingungen,

ich könnte mir jetzt vorstellen, dass du in deiner Datei zusätzliche Leerzeichen hast,
kann das aber nicht nachprüfen
 
G

Guest

Gast
es geht allein darum, für den Moment dein Programm zu testen, und was du in deiner Datei hast kann nunmal niemand sehen,

da stimme ich dir zu. Wenn ich die wörter über parameter einlesen lasse(oder direktzuweise) dann klappt das.

wen du die datei sehen willst, hier ist sie

5 wörter, keine leerzeichen, nix!
 
S

SlaterB

Gast
"über parameter einlesen lasse(oder direktzuweise)" scheint nicht
String beispielDatei = "wort1 wort\nwort3";
zu entsprechen, probiere das bitte aus

wenn mit dem String trotz Fehlen von Leerzeichen der gleiche Fehler kommt, dann kann man weiter überlegen woher diese Leerzeichen kommen,
dann beschreibe bitte nochmal genau, an welcher Stelle sie auftauchen

ansonsten die Datei Zeichen für Zeichen mit dem String vergleichen,
irgendwas muss ja anders sein, wenn es mit String geht, mit Datei aber nicht,

wenn alles keine Lösung gibt, dann schaue ich mir tatsächlich deine Datei an ;) ,
aber vorher bitte bisschen selber arbeiten
 
G

Guest

Gast
ja, klar hab nix gegen selber arbeiten! wie will man sonst was lernen^^

bei direktzuweisund (String wort="daswort") klappt es. Dann wird es ohne lerzeichen oderso erkannt.

Beim Stringarray ist auch noch komische das er mir in der Console das wort ohne leerzeichen ausgibt.
 
S

SlaterB

Gast
falls du mit mir redest, so enthält diese Antwort wenig hilfreiche Info,
keine Frage und kein Eingehen auf meine Fragen

> Beim Stringarray

was für ein Stringarray? mein Beispiel entspricht doch sicherlich nicht deiner List '1 Wort pro Zeile'

> ist auch noch komische das er mir in der Console das wort ohne leerzeichen ausgibt

wolltes du nicht eine Ausgabe ohne Leerzeichen?..
 
G

Guest

Gast
du verstehst irgendwie nicht wa sich meine!!

also das problem ist, im Programm wird mir das wort MIT Leerzeichen ausgegeben.Wenn ich mir die variable aber über System.out.println in die console ausgeben lasse ist KEIN leerzeichen vorhanden!! verstanden?!?!?!?
Code:
			if (zufall < entrys_woerter.length) {
				   myword=entrys_woerter[zufall];
				   [b]System.out.println(myword);[/b]
			}[/code
 
G

Guest

Gast
problem.jpg
 
S

SlaterB

Gast
ich sehe in der Tat keinen Unterschied zwischen "im Programm wird mir das wort MIT Leerzeichen"
und "variable aber über System.out.println in die console ausgeben lasse ist KEIN leerzeichen"

was meinst du denn mit "im Programm"? irgendeine andere Stelle im Programm die bisher nicht zu sehen war?
wie soll man darüber eine Aussgabe treffen?
 
G

Guest

Gast
also solangsam verzweifel ich echt. da sis doch nciht soo schwer zu verstehen(oder willst du es nicht verstehen?!?!) guck doch einfach mal auf das bild! da steht:

Wort: Montmartre_ Das gesuchte Wort was 'Montmartre'!

erkennst du den unterschied? zähl doch mal die zeichen beider wörter... fällt dir was auf?

die wörter stammen aus der einen varibale!!!!
 
S

SlaterB

Gast
wie gesagt, was irgendwo an anderer Stelle in deinem Programm so passiert kann ich nicht beurteilen,

als nächstes postest du

Wort: Montmartre_Slater_ist_doof Das gesuchte Wort was 'Montmartre'!

und dann soll ich glauben, dass dein Computer ein eigenes Bewußtsein hat? ;)
das _ wird irgendeinen Grund haben, aber wenn du den entsprechenden Code nicht postest, dann kann ich nix dazu sagen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
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
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
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
P Datentypen Array und String Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
Curtis_MC 2dimensionales Array als String ausgeben Java Basics - Anfänger-Themen 2
I char Array to String Java Basics - Anfänger-Themen 3
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
E Array to String Method Reverse Java Basics - Anfänger-Themen 5
Mosquera Get String Array - ComboBox Java Basics - Anfänger-Themen 10
P Strings in String Array schreiben Java Basics - Anfänger-Themen 13
V zweidimensionale String Array Java Basics - Anfänger-Themen 1
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
M Array nach String durchsuchen und zurückgeben Java Basics - Anfänger-Themen 16
J Klassen Zugriff auf ein "String Array" Java Basics - Anfänger-Themen 6
C Methoden String in char Array Java Basics - Anfänger-Themen 3
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
L Prüfe, ob die im String Array enthaltenen Strings aufsteigend sind. Java Basics - Anfänger-Themen 19
N String array to String Java Basics - Anfänger-Themen 6
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
B String in Array speichern Java Basics - Anfänger-Themen 4
L String zu String Array Java Basics - Anfänger-Themen 2
D Input/Output Array in einem String mit einem Trennzeichen verbinden Java Basics - Anfänger-Themen 17
D String-Array Java Basics - Anfänger-Themen 3
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
K String in String-Array suchen Java Basics - Anfänger-Themen 11
K String Array basierend auf int Array füllen Java Basics - Anfänger-Themen 2
K Im String Array suchen Java Basics - Anfänger-Themen 8
D Elements[] string = document.getElementsByClass("betEvent"); als Array Java Basics - Anfänger-Themen 1
C Array in String umwandeln Java Basics - Anfänger-Themen 5
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
M String Array mischen Java Basics - Anfänger-Themen 3
F Methoden Kontaktliste - String in einem Array suchen und ausgeben Java Basics - Anfänger-Themen 3
K String zu int Array Java Basics - Anfänger-Themen 3
B String auslesen und Stellen im Array speichern Java Basics - Anfänger-Themen 1
W Array in String und String in Array - falsche Ausgaben Java Basics - Anfänger-Themen 20
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
W Array nach String durchsuchen und Ausgeben Java Basics - Anfänger-Themen 8
B Binäre Suche in einem String Array Java Basics - Anfänger-Themen 10
K String in String-Array finden Java Basics - Anfänger-Themen 7
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
J 2 String Arrays in neuem String Array verbinden Java Basics - Anfänger-Themen 4
S String zu quadratischen Array Java Basics - Anfänger-Themen 3
T Array mit String, Zahlen in If Saetze packen Java Basics - Anfänger-Themen 3
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
S ArrayDeque zu String Array Java Basics - Anfänger-Themen 2
A Variablen String Array in einzelne Strings auspalten Java Basics - Anfänger-Themen 4
K Input/Output 6000 Zeilen einlesen und String-Array vergleichen? Java Basics - Anfänger-Themen 1
fLooojava String zu Array Java Basics - Anfänger-Themen 5
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
J array in String umwandeln Java Basics - Anfänger-Themen 1
J array in String umwandeln Java Basics - Anfänger-Themen 3
E Erste Schritte Array soll kleiner werdenden String erstellen Java Basics - Anfänger-Themen 5
D String-Array aus Tastatureingabe Java Basics - Anfänger-Themen 4
A Mehrdimensionalles Array in String ausgeben in Liste Java Basics - Anfänger-Themen 5
L String array mit split füllen Java Basics - Anfänger-Themen 14
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
A private string array Java Basics - Anfänger-Themen 5
W String / Int-Array Java Basics - Anfänger-Themen 13
C Doppelte Einträge aus String [] Array entfernen. Java Basics - Anfänger-Themen 5
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
B Werte über Scanner in ein 3 dim String Array schreiben Java Basics - Anfänger-Themen 7
T String in Array suchen Java Basics - Anfänger-Themen 9
G String einem String Array übergeben Java Basics - Anfänger-Themen 3
G String to Array Java Basics - Anfänger-Themen 2
P CSV Datei in String Array -> Split -> New Array Java Basics - Anfänger-Themen 2
U OOP Array vom Typ String > Inhalt ausgeben Java Basics - Anfänger-Themen 8
F Variablen String-Array wird ungewollt "überschreiben" Java Basics - Anfänger-Themen 7
J Zeichen aus String Array lesen Java Basics - Anfänger-Themen 13
S Länge eines Elements im String Array Java Basics - Anfänger-Themen 5
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
C Datentypen Zweidimensionales Array mit String und int Java Basics - Anfänger-Themen 3
J Array zu String Java Basics - Anfänger-Themen 13
B String Array in main() Java Basics - Anfänger-Themen 2
G String Array konvertieren in Integer Array? Java Basics - Anfänger-Themen 7
Junb String in Array speichern Java Basics - Anfänger-Themen 4
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
P String Sortieren in einem Array Java Basics - Anfänger-Themen 7
W String & Integer im Array Java Basics - Anfänger-Themen 7
C Datentypen int array in String ausgeben Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben