string Array in eine Vector packen

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Ich möchte eine eindimensionales Array in ein zweidimensionalen Vector packen, aber ich weiß nicht mit welcher Methode das geht. Bitte gebt mir mal einen Tipp.
Code:
private Vector<Vector<String>> buildTableData(String[] linesForTable)
	{
		Vector<Vector<String>> zeilen = null;
		
										
		boolean z2=false;		
		for (int i = 0; i < linesForTable.length; i++)
		{
			
			if(z2){
				zeilen.add(linesForTable);
				System.out.println(""+zeilen);
				
			}

			if(linesForTable[i].startsWith("||")){z2=true;}
		}
		
		return zeilen;
 
S

SlaterB

Gast
entweder verwendest du einen Vector<String[]>

oder du überlegst dir erstmal, wie du das eindimensionale Array in einen Vector<String> unwandelst

oder du überlegst dir erstmal, wie du einen String in einen Vector<String> unwandelst
falls ein Element deines String-Array eine ganze 'line' = Zeile mit mehreren Attributen darstellt?

nicht alles auf einmal,
 
G

Guest

Gast
also die line = zeile mit 10 spalten soll in ein zweidimensionales array gepackt werden um später adressiert werden zu können. wenn ich linesForTable als Vector<String> deklariere dann fällt mir das linesForTable.length um.
 
S

SlaterB

Gast
du sollst es nicht deklarieren sondern umwandeln,

kümme dich zunächst einmal darum, EINE solche Zeile zu zerlegen,
Schritt für Schritt das Problem lösen,
wenn du erstmal eine Zeile zerlegen kannst, wirds mit dem Array von Zeilen nicht mehr ganz so schwer
 
G

Guest

Gast
mein problem ist, dass das alles aus einer textdatei eingelesen wird und 2 zeilen sind durch die Pipe || voneinander getrennt. also wollte ich zuerst die beiden zeilen von einander trennen und in den zweidimensionalen vector werfen.
von dem vector aus soll dann einfach alles in der reihenfolge ausgegeben werden wie es eingelesen wurde.
Code:
package liefer.funktionell;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;

public class LSParser
{

	private Map<String,String> head=null;
	private Vector<Vector<String>> tableData=null;

	public LSParser()
	{
		
	}
	
	private static String[] readFile(String fileName) throws IOException
	{
        String zeile = null;
        StringBuffer datei = new StringBuffer();
        BufferedReader in = new BufferedReader(new FileReader(fileName));
        while((zeile = in.readLine()) != null)
        {
           datei.append(zeile);
           datei.append("\n");
           
        }
        in.close();
        //split
        String[] zeilen = datei.toString().split("\n");
        return zeilen;
	}
		
	/**
	 * Lesen und Verarbeiten einer LS-Datei
	 * 
	 * @param fileName -- Quelldatei
	 * @throws Exception -- (...)
	 */
	public void parse(String fileName) throws Exception
	{
		/*
		 * 
		 * 1. Textdatei öffnen
		 * 2. Inhalte lesen
		 * 3. Inhalte zerlegen
		 * 4. lokale Variablen zuweisen
		 * 5. adieu. 
		 * 
		 */
		Map<String,String> kopfListe = new HashMap<String, String>();
		
		try
		{
			String[] strings = readFile(fileName);
			String[] linesForHead = getHeadLines(strings);
			String[] linesForTable = getTableLines(strings);
			this.tableData = buildTableData(linesForTable);
			
			
			int length = linesForHead.length;
	
			for (int i=2;i<=(length-1);i=i+2)
			{
				kopfListe.put((linesForHead[i]).toLowerCase(), linesForHead[i+1].toLowerCase());
			}
				
		}
		catch (Exception e)
		{
			System.out.println("Zeile:" +e.getMessage());
			e.printStackTrace();
		}
		

		this.head=kopfListe;
	}

	
	/*
	 * aufbau der zeilen zerteilen bei || und dann in der eingelesenen 
	 * Reihenfolge zurückgeben
	 */
	
	private Vector<Vector<String>> buildTableData(String[] linesForTable)
	{
		Vector<Vector<String>> zeilen = null;
		
										
		boolean z2=false;		
		for (int i = 0; i < linesForTable.length; i++)
		{
			//linesForTable umwandeln
			if(z2){
				zeilen.add(linesForTable[i]);
							
				System.out.println(""+zeilen);
				
			}

			if(linesForTable[i].startsWith("||")){z2=true;}
		}
		
		return zeilen;
	}

	private String[] getTableLines(String[] strings)
	{
		String[] tables=null;
		StringBuffer tableBuffer = new StringBuffer();
		
		boolean z2=false;		
		for (int i = 0; i < strings.length; i++)
		{
			
			if(z2){
				tableBuffer.append(strings[i]);
				tableBuffer.append("\n");
			}

			if(strings[i].startsWith("Tabelle")){z2=true;}
		}
		
		tables=tableBuffer.toString().split("\n");
		return tables;
	}

	private String[] getHeadLines(String[] strings)
	{
		String[] heads=null;
		StringBuffer headBuffer = new StringBuffer();
		
		for (int i = 0; i < strings.length; i++)
		{
			if(strings[i].startsWith("Tabelle")){break;}
			headBuffer.append(strings[i]);
			headBuffer.append("\n");
		}
		heads=headBuffer.toString().split("\n");
		return heads;
	}

	
	public Vector<Vector<String>> getTableData()
	{
		return this.tableData;
	}

	public Map<String,String> getHead()
	{	
		return this.head;
	}

}
 
S

SlaterB

Gast
ist da eine Frage dabei?
nur mit Zuwerfen von Code und Teilinformationshäppchen wie || funktioniert das nicht,

wenn du dagegen eine konkretes Problem heraus-denkst und darstellst wie
'wie kann man einen String "abc||def" bei || auftrennen'
dann ist die Antwort fast von selber da, sofern du dich mit String-Operationen wie indexOf()/ substring()
oder höheren Tools wie StringTokenizer, Scanner, Reguläre Ausdrücke auskennst
 
G

Guest

Gast
okay, ich bin ein neuling... ich kannte bisher nur split und weiß nicht recht mit den string-operationen indexOf und subString umzugehen :( deshalb dachte ich, dass die Trennund an der ||-Stelle mit der Zeile realisieren könnte:

Code:
if(linesForTable[i].startsWith("||")){z2=true;}
ich wollte damit erreichen, dass jedes mal wenn eine zeile mit || beginnt in den vector geworfen wird.
Oder liegt dort schon meine Problem, dass es nicht funktioniert? linesForTable muss ich vermutlich vorher noch umwandeln, oder?
 
S

SlaterB

Gast
split ist auch recht nett, stimmt

was du mit z2 = true so vorhast, weiß ich nicht und will ich (vorerst) auch gar nicht wissen,
denn linesForTable ist schon schlimm genug,

wie gesagt: ignoriere das Array,
fange erstmal damit an, EINEN String = EINE Zeile in ihre Attribute zu zerlegen,
diese Aufgabe ist völlig unabhängig davon, ob du insgesamt nur eine Zeile oder ein ganzes Array von Zeilen hast,
also erstmal das, dann später mehr
 
G

Guest

Gast
Einen String ergo eine Zeile in die entsprechenden Teile zu teilen habe ich ja bereits in getTableLines gemacht:
Code:
		tables=tableBuffer.toString().split("\n");
		return tables;
ein anderer Weg fällt mir nicht ein. Oder ist das auch falsch?
Es würde dann so aussehen:
Code:
private Vector<Vector<String>> buildTableData(String[] linesForTable)
	{
		Vector<Vector<String>> zeilen = null;
		StringBuffer zeilenBuffer = new StringBuffer();
		
		//String-Operationen wie indexOf()/ substring() ???
		
										
		boolean z2=false;		
		for (int i = 0; i < linesForTable.length; i++)
		{
			linesForTable.clone().toString();
			//linesForTable umwandeln umd sie zu zweidimensionalem vector hinzufügen
			if(z2){
				
				zeilen.add(linesForTable);			
				System.out.println(""+zeilen);
				
			}

			if(linesForTable[i].startsWith("||")){z2=true;}
		}
		
		zeilen=zeilenBuffer.toString().split("\n");
		return zeilen;
	}
aber da wirft es mir auch vor die füße, dass Type mismatch: cannot convert from String[] to Vector<Vector<String>> und ich bin hilflos wie ich das ändern kann...
 
S

SlaterB

Gast
tja, ich persönlich programmiere das nicht für dich sondern würde dir nur inhaltlich helfen,

und da kann ich dir nicht viel mehr sagen, als dass das ein Katastrophe ist,
beschreibe doch mal in Worten was passieren soll, wie das Vorgehen geplant ist,

dein Programm macht bisher:
- leeren Stringbuffer erstellen
- irgendwas tun was für den Rückgabewert egal ist,
- am Ende den (immer noch leeren...) StringBuffer splitten und dieses String[] dann als Rückgabewert verkaufen,
der eigentlich Vector<Vector<String>> sein soll?!

da gibt es nix zu korrigeren, da kann man nur sagen:
die Operation macht bisher gar nix


ich habe dir schon viele Hinweise gegeben, wie man das sauber und strukturiert anfangen könnte,
aber das hilft natürlich nur, wenn du auch etwas Verständnis/ Können mitbringst,
langsam ermüde ich da ;)

evtl. suchst du einfach nur fertige (Teil-) Lösungen,
falls hier sonst keiner mehr reinschaut könntest du es in einem neuen Thread nochmal probieren, dann halte ich mich raus ;)
 

mikachu

Top Contributor
Anonymous hat gesagt.:
mein problem ist, dass das alles aus einer textdatei eingelesen wird und 2 zeilen sind durch die Pipe || voneinander getrennt.
ich fasse zusammen: boolean isDivided = true;
Anonymous hat gesagt.:
also wollte ich zuerst die beiden zeilen von einander trennen und in den zweidimensionalen vector werfen.
ich fasse zusammen: if( !isDivided ) divide(); // möööeeeeppp

Hier wäre ein kleines Textbeispiel angebracht... obwohl ich mich frage, warum du schon getrennte zeilen nochmal trennen willst?

sry für die zeit, aber gestern keine zeit gehabt :wink: :###
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
P wie bekomme ich ein array in eine string variable Java Basics - Anfänger-Themen 11
B String zu eine zwei dimensionales Array Java Basics - Anfänger-Themen 6
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 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
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

Ähnliche Java Themen

Neue Themen


Oben