# Array einlesen, Int und Char



## Jen (2. Apr 2007)

Hallo zusammen!

Habe bei meinem Praktikum eine neue Aufgabe bekommen:

Ich soll eine Bücherliste mit verschiedenen Attributen einlesen. Dazu gehören u.a. Titel, Autor IBSN usw., also Worte sowie Zahlen und beides gemischt.

Jetzt die Frage:

Wie lese ich die Daten in ein Array ein?
Habe sie in einer .txt, die verschiedenen Bücher sind durch Zeilenumbrüche, die Attribute durch ein "|" getrennt.

Stichwortartige Antworten wären auch schon hilfreich, damit ich weiß, wonach ich weiter suchen muss (habe "Java ist auch eine Insel").


----------



## Der Müde Joe (2. Apr 2007)

Kapitel 12 Dateien und Datenströme
http://www.galileocomputing.de/open...12_001.htm#mj07fc877dcc9c3b3b6809ca2a5f6e770c


----------



## Leroy42 (2. Apr 2007)

1. Eine statische Bücher-Methode Buch[] readFrom(File file) erstellen.
2. In dieser Methode zeilenweise einlesen eine ArrayList<Buch> befüllen
3. Eine nicht-statische Bücher-Methode parse(String) erstellen.
4. Diese Methode benutzt split("|") auf dem String um die
Komponenten zu extrahieren und füllt die Attribute der entsprechenden Buch-Instanz
5. Die ArrayList nach vollständigem Einlesen eventuell in ein Array umwandeln und zurückgeben


----------



## WieselAc (2. Apr 2007)

und dazu noch:

String#splitt()
Integer#parseInt();


----------



## Leroy42 (2. Apr 2007)

WieselAc hat gesagt.:
			
		

> String#splitt();


Siehe meinen Punkt 4)



			
				WieselAc hat gesagt.:
			
		

> Integer#parseInt();



Richtig!


----------



## Jen (2. Apr 2007)

Okay danke schonmal.

Wie bekomme ich denn dieses File richtig ertellt bzw. bei Eclipse rein?


----------



## Der Müde Joe (2. Apr 2007)

Kapitel 12.3 Stream-Klassen und Reader/Writer am Beispiel von Dateien 
http://www.galileocomputing.de/open...12_003.htm#mjf9500d4206599d13f489597170fae81c
;-)


----------



## Leroy42 (2. Apr 2007)

Der Müde Joe hat gesagt.:
			
		

> Kapitel 12.3 Stream-Klassen und Reader/Writer am Beispiel von Dateien
> http://www.galileocomputing.de/open...12_003.htm#mjf9500d4206599d13f489597170fae81c
> ;-)



Gut!

Das beantwortet aber immer noch nicht Jen's zweite Frage:


			
				Jen hat gesagt.:
			
		

> Wie bekomme ich denn dieses File ... bei Eclipse rein?



Das würde mich auch interessieren.  ???:L


----------



## Wildcard (2. Apr 2007)

Leroy42 hat gesagt.:
			
		

> Das beantwortet aber immer noch nicht Jen's zweite Frage:
> 
> 
> 
> ...


? Damit ist gemeint?


----------



## Leroy42 (2. Apr 2007)

Ich verstehe das so, daß Jen seine Textdatei auch unter Eclipse angezeigt
bekommt und ändern kann. Wie macht man das (Es ist immerhin keine Java-Datei
die man einfach via _New==>Class_ generieren und in das Projekt mit aufnehmen kann.


----------



## Der Müde Joe (2. Apr 2007)

New >> File

oder Java arbeiten lassen
und refresh


----------



## Wildcard (2. Apr 2007)

Wenn ein Programm was im Workspace ändert immer Refreshed werden.
Die Ausnahme ist ein Eclipse Plugin das den IFile Mechanismus verwendet.


----------



## Leroy42 (2. Apr 2007)

Ahh! Danke!

Werd' ich nachher mal versuchen.


----------



## Jen (2. Apr 2007)

Hm, könnte mir jemand vielleicht noch etwas allgemeinen Code dazu posten? Weiß nicht so ganz, wie ich da anfangen soll.. :?


----------



## Wildcard (2. Apr 2007)

Zu was genau möchtest du denn Code haben?


----------



## Der Müde Joe (2. Apr 2007)

http://www.torsten-horn.de/techdocs/java-io.htm

siehe Link..


----------



## Jen (2. Apr 2007)

Ich hänge schon bei 1. und 2. von Leroy und aus den Büchern werd ich auch nicht so richtig schlau.. :###  ???:L


----------



## Wildcard (2. Apr 2007)

```
private List<String> lines = new ArrayList<String>();

	private void readFromFile(File f)
	{
		try {
			BufferedReader reader = new BufferedReader(new FileReader(f));
			String s;
			while((s =reader.readLine())!=null)
			{
				lines.add(s);
			}
			reader.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
```


----------



## Leroy42 (2. Apr 2007)

Richtig! Und in einem zweiten Aufwasch dann.


```
Buch[] bücher = new Buch[lines.size()];

int idx = 0;
for (String line : lines)
  bücher[i++] = new Buch().parseFrom(line);
...
class Buch {
  ...
  public Buch parseFrom(String source); {
    String[] elems = source.split("|");
    // Füllen der Buchattribute
   return this;
  }
}
```

Ich weiß jetzt allerdings nicht, ob in split("|") das '|' escaped werden muß
(und bin auch zu faul, da jetzt nachzuschauen  :wink: )


----------



## Jen (2. Apr 2007)

Danke!

Ohje, kann mit dem noch nichts anfangen.  

Hat zuufällig jemand Lust, den ganzen Code zu posten, dann würd ich versuchen, es mir damit zu erarbeiten. (Ich weiß, es ist blöde das zu fragen und ihr sollt ja keine "Hausaufgaben" erledigen.. Aber es würde mir trotzdem wahnsinnig helfen!)


----------



## Leroy42 (2. Apr 2007)

Jen hat gesagt.:
			
		

> Hat zuufällig jemand Lust, den ganzen Code zu posten



Da laß ich jetzt mal Wildcard den Vortritt!  :bae: 

(Alter geht vor Schönheit    )


----------



## Wildcard (2. Apr 2007)

Leroy42 hat gesagt.:
			
		

> (Alter geht vor Schönheit    )


Dann geh ich einfach mal davon aus das du dran bist  :bae:


----------



## Leroy42 (2. Apr 2007)

Grrmmppfff! Gewonnen!

Dann einen Moment...


----------



## Der Müde Joe (2. Apr 2007)

Mit 66 Jahren, da fängt das Leben an...mit 66 Jahren da is man lang noch nicht dran.....


----------



## Jen (2. Apr 2007)

Ich hoffe ja, dass ich das hier beherrsche, bevor ich 66 bin! :wink: 
Übrigens find ich euere Hilfsbereitschaft bemerkenswert! :applaus:


----------



## Leroy42 (2. Apr 2007)

Fertig!   


```
class Buch {
	String titel;
	int gewicht;
	
	static Buch[] readFromFile(File f) {
		List<Buch> bücher = new ArrayList<Buch>();
		try { 
			BufferedReader reader = new BufferedReader(new FileReader(f)); 
			String s; 
			while((s = reader.readLine())!=null) { 
				bücher.add(new Buch().parseFrom(s));
			} 
			reader.close(); 
		} catch (IOException e) {e.printStackTrace();} 
		return bücher.toArray(new Buch[] {});
		
	}

            public void toString() {
                    return String.format("Buch(<%s>, %d)", titel, gewicht);
            }
	
	public Buch parseFrom(String source) {
		String[] elems = source.split("|"); 
		gewicht = Integer.parseInt(elems[0]);
		titel = elems[1];
		return this; 
	} 
	public static void main(String[] args) {
		System.out.println(Buch.readFromFile(new File("Bücherliste.txt")));
	}
}
```
sollte auf eine Datei mit


			
				Bücherliste.txt hat gesagt.:
			
		

> 42|LiesMich
> 24|ÜberliesMich


funktionieren.


----------



## Jen (2. Apr 2007)

Huiuiui! Danke! 
Dann mach ich mich gleich mal ans Verstehen! :idea:

-Edit 1:
Ahja: In welchem Verzeichnis muss denn dann Bücherliste.txt sein? 
Und ich seh gerade, dass zwischen manchen Angaben mehrere "|" sind, ist das schlimm?

-Edit 2:
Muss ich dann für jede "Kategorie", die durch "|" getrennt werden, einen neuen String oder int machen?


----------



## Wildcard (2. Apr 2007)

Jen hat gesagt.:
			
		

> Und ich seh gerade, dass zwischen manchen Angaben mehrere "|" sind, ist das schlimm?


Dafür musst du 

```
source.split("|");
```
in

```
source.split("|+")
```
ändern.


----------



## Leroy42 (2. Apr 2007)

Jen hat gesagt.:
			
		

> Und ich seh gerade, dass zwischen manchen Angaben mehrere "|" sind, ist das schlimm?


 :shock: 
Aber sicher doch! Das ist eine Verschwendung sondergleichen!
Jetzt sag bloß noch, das du diese Datei auch ausdruckst.!  :autsch: 

Was das für einen zusätzlichen Verschleiß von Druckpatronen darstellt!  :shock: 
Unglaublich! :x 
Dann bist du das also mit dem Regenwald...   

Sorry, aber bei soviel Unverantwortlichkeit gegenüber unserer
Umwelt, geht mir die Hutschnur hoch!

(  )


----------



## Leroy42 (2. Apr 2007)

Ich sehe gerade, daß '|' in einem regulären Ausdruck doch escaped werden muß.

Hier nochmal die überarbeitete, lauffähige Version:


```
class Buch {
	String titel;
	int gewicht;
	static String datei = "42|LiesMich\n24|ÜberliesMich";
	
	static Buch[] readFromFile(File f) {
		List<Buch> bücher = new ArrayList<Buch>();
		try { 
			BufferedReader reader = new BufferedReader(new StringReader(datei)); 
			String s; 
			while((s = reader.readLine())!=null) { 
				bücher.add(new Buch().parseFrom(s));
			} 
			reader.close(); 
		} catch (IOException e) {e.printStackTrace();} 
		return bücher.toArray(new Buch[] {});
		
	}
	
	public Buch parseFrom(String source) {
		String[] elems = source.split("\\|");
		gewicht = Integer.parseInt(elems[0]);
		titel = elems[1];
		return this; 
	} 
	
	public String toString() { 
        return String.format("Buch(<%s>, %d)", titel, gewicht); 
}
	public static void main(String[] args) {
		System.out.println(Arrays.toString(Buch.readFromFile(new File("Bücherliste.txt"))));
	}
}
```


----------



## Guest (3. Apr 2007)

Ok, jetzt soll ich die Anzahl der Felder (Attriute) offen lassen und alle als String. Muss ich dann oben irgendwie "String[]" machen anstatt "String titel"?


----------



## Jen (3. Apr 2007)

Anonymous hat gesagt.:
			
		

> Ok, jetzt soll ich die Anzahl der Felder (Attriute) offen lassen und alle als String. Muss ich dann oben irgendwie "String[]" machen anstatt "String titel"?


Sorry, nicht eingelogt. Und übrigens, ich muss das dann nicht ausdrucken. :wink: Allein schon aus dem Grund, dass es über 42.000 Artikel sind! :shock: Aber schön, dass sich jemand so um die Umwelt kümmet! :wink:

Edit:
Und vor allem noch: Wo muss die Texdatei liegen? Das findet die nicht.


----------



## Wildcard (3. Apr 2007)

Jen hat gesagt.:
			
		

> Und vor allem noch: Wo muss die Texdatei liegen? Das findet die nicht.


Nach Leroy's Code müsste sie bei der .class Datei liegen. Du kannst aber auch einfach einen absoluten Pfad angeben.


----------



## Leroy42 (3. Apr 2007)

Anonymous hat gesagt.:
			
		

> Ok, jetzt soll ich die Anzahl der Felder (Attriute) offen lassen und alle als String. Muss ich dann oben irgendwie "String[]" machen anstatt "String titel"?



Natürlich nicht! In meinem Beispiel habe ich doch auch 2 verschieden Attributtypen:

```
class Buch { 
   String titel; 
   int gewicht;
   ...
}
```

Wobei _gewicht_ aus den String via Integer.parseInt extrahiert wird:


```
public Buch parseFrom(String source) { 
      String[] elems = source.split("\\|"); 
      gewicht = Integer.parseInt(elems[0]); 
      titel = elems[1]; 
      return this; 
   }
```


----------



## Guest (4. Apr 2007)

So, nach in bisschen Umbauen hab ich jetzt das hier:


```
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

class Demoshop {
	
   
   static Product[] readFromFile(File f) {
      List<Product> products = new ArrayList<Product>();
      try {
         BufferedReader reader = new BufferedReader(new FileReader(f));
         String s;
         int i = 0;
         while((s = reader.readLine())!=null) {
            products.add(new Product().parseFrom(s));
            i++;
            System.out.println(i);
         }
         reader.close();
      } catch (IOException e) {e.printStackTrace();}
      return products.toArray(new Product[] {});
      
   }

            public String toString() {
                    return String.format("Product(<%s>, %d)", A1);
            }
   
   public static void main(String[] args) {
      System.out.println(readFromFile(new File("C:/src/java/anwendungen/Demoshop/Liste")));

   }
}
```
zusammen mit der Klasse

```
public class Product {


	   public Product parseFrom(String source) {
		      String[] elems = source.split("\\|");

		      		      
		      return this;
		   }

	   
}
```

Jetzt soll ich den Demoshop dazu bekommen, mir einzelne elems auszugeben. Wie bekomm ich die denn von Product "rüber"?


----------



## Jen (4. Apr 2007)

So, erstens hab ich wieder mal vergessen mich einzuloggen und zweitens hab ich es selbst hinekommen mit System.out.println(elems[1]) in der Klasse Products. Laaaaaaaaaangsam blick ich durch!


----------



## Guest (4. Apr 2007)

Ok, jetzt soll ich einen Parameter von der main in die readFromFile und dann in die parse übergeen. Wie macht man das?


----------



## Leroy42 (4. Apr 2007)

```
static Product[] readFromFile(File f, MeinTyp einParameter) {
```

oder was meinst du genau?


----------



## Jen (4. Apr 2007)

Und wie bekomm ich dahin einen Wert übergeben?
Vor allem eben aus der main. :bahnhof:


----------



## Leroy42 (4. Apr 2007)

```
static Product[] readFromFile(File f, int einInt) {

...

static void main(String[] args) {
   readFromFile(new File("erna"), 42);
```


----------



## Jen (4. Apr 2007)

Wird immer besser.  

Aber: Wie kann ich jetzt einen Treffer ausgeben, wenn mein übergebener Parameter "ArtNr" in "elems[0]" vorkommt?
Als noob hab ich so angefangen, aber das klappt nicht, weil ich ja keine Strings mit "==" vergleichen kann:


```
public Product parseFrom(String source, String ArtNr) {
		      String[] elems = source.split("\\|");
		      
		 if (ArtNr == elems[0]){
		      System.out.println("Treffer: " + elems[0]);
		 }
```
Gibt es sowas wie nen Element-Operator, mit dem ich schaun kann, ob ArtNr in elems drin is?


----------



## Leroy42 (4. Apr 2007)

```
if (elems.length > 0 && artNr.equals(elems[0])) {
```

Gewöhn dir am besten gleich an, NUR Klassennamen und 
static final - Konstanten mit einem großen Buchstaben beginnen zu lassen.

Alles andere mit kleinem Buchstaben anfangen.


----------



## Leroy42 (4. Apr 2007)

Jen hat gesagt.:
			
		

> Gibt es sowas wie nen Element-Operator, mit dem ich schaun kann, ob ArtNr in elems drin is?



Nein! Ich denke es würde in deinem Fall auch keinen Sinn machen,
da die Artikelnummer immer an derselben Position stehen muß.

Wie solltest du sonst unterscheiden können, welches Attribut du gerade behandelst?  ???:L


----------



## Jen (4. Apr 2007)

Ahja danke!
Unter welchem Begriff find ich denn dieses .length und .equals usw. in meinem schauen Buch?


----------



## Leroy42 (4. Apr 2007)

Im Index?  ???:L 

Erstens weiß ich nicht, welches _schlaue Buch_ sich bei dir rumtreibt
und zweitens solltest du ein Tutorial durcharbeiten, da wirst du automatisch
mit diesen _Sachen_(Arrays, Stringvergleiche, ...) bekannt gemacht.


----------



## Jen (4. Apr 2007)

Tut mir leid, falls ich ständig blöde Fragen stelle..
(Das Buch ist übrigens u.a. "Java ist auch eine Insel" und ich möchte bei Zeiten auch einen oder besser gleich mehrere Tutorials machen.)

Jetzt eine neue (hoffentlich für alte Hasen einigermaßen erträgliche :wink: ) Frage:

Wie kann ich an "elems" sehen, wie oft gesplittet wurde bzw. wie viele Einträge es pro Artikel gibt?


----------



## Leroy42 (4. Apr 2007)

Jen hat gesagt.:
			
		

> Wie kann ich an "elems" sehen, wie oft gesplittet wurde?




```
elems.length
```



			
				Jen hat gesagt.:
			
		

> wie viele Einträge es pro Artikel gibt?



 :shock: 

Meinst du jetzt wieviele Elemente pro Zeile duch | getrennt sind?

Das mußt du doch vorgeben  ???:L 



			
				Zeilenaufbau hat gesagt.:
			
		

> Autor|Titel|Gewicht|...


----------



## Jen (5. Apr 2007)

Nee das hab ich nicht vorgegeben. Und genau da soll ich jetzt anknüpfen.
Ich soll eine Hashmap anlegen, die die Spalten benennt.

Der Anfang sieht so aus, die Zahen sind die Nummer der Spalte und daneben der Titel:

```
import java.util.HashMap;
import java.util.Map;


public class Product {


	public Product parseFrom(String source, String ArtNr) {
		      String[] elems = source.split("\\|");
		      
		      
	 if (ArtNr.equals(elems[0])) {
    	  System.out.println("Treffer: " + elems[0]);
    	  
    		for (int i = 0; i < elems.length; i++ ){
    			System.out.println(elems[i]);
    		}
    	  
	 }
	
	 
	 
	 Map<String, String> category = new HashMap<String, String>();
	 category.put("0", "Artikelnummer");
	 category.put("8", "EAN");
	 category.put("1", "Titel");
	 category.put("3", "Beschreibung");
	 category.put("14", "Kategorie");
	 category.put("31", "Unterkategorien");
	 category.put("9", "Hersteller");
	 category.put("6", "Preis");
	 category.put("34", "Systemvorraussetzung");
	 category.put("15", "Artikelzustand");
	 category.put("17", "Artikelstatus");
	 category.put("16", "Freigabe");
	 category.put("5", "Bild");
	 category.put("24", "MagicEdition");
	 category.put("25", "MagicFarbe");
	 category.put("27", "MagicSprache");
	 category.put("28", "MagicSeltenheit");
	 category.put("26", "MagicKartentyp");
	 category.put("36", "YuGiOhEdition");
	 category.put("37", "YuGiOhSeltenheit");

	      
		      return this;
		   }

	   
}
```
Jetzt muss ich das aber irgendwie mit elems verbinden, sodass ich (mit "category.get()" ?) von allen Artikeln zum Beispiel den Preis ausgeben kann.

Ist der Ansatz richtig oder muss ich das anders lösen?


----------



## Leroy42 (5. Apr 2007)

:shock:  :autsch: 

Jetzt mal ganz in Ruhe   

Was hast du vorgegeben? Was steht in deiner Datei durch | getrennt,
poste doch einfach mal ein paar Zeilen deiner Datei.

Was sollst du später mit den eingelesenen Daten machen. Das ist entscheidend
zur Wahl der Datenstruktur in die du einliest.


----------



## Jen (5. Apr 2007)

Na gut *durchatem* 

Also die Liste sieht so aus, nur viiieeel länger:

```
7400-2338|(EB) Hidden & Dangerous AddOn - Fight for Freedom|||Schnäppchen||||||||||||||Actionspiel,Zusatz-CD||||||||252698
```
Edit: Gekürzt, damit das hier weider schön reinpasst.

Jetzt habe ich (/wir :wink: ) ja das Programm bisher so, dass bei den "|" gesplittet wird und die Spalten in elems[] gespeichert werden, z.b. elems[0] sind die Artikelnummern.
Jetzt soll ich die ganzen Spalten mit Hilfe von einer Hashmap benennen.

Edit: Zeile 12 - 19 müsste man hierfür weglassen (können), denk ich.


----------



## Leroy42 (5. Apr 2007)

Und wie lauten die einzelnen Überschriften zu den Spalten?

Also "7400-2338" ist wohl die Artikelnummer; ok

"(EB) Hidden & Dangerous AddOn - Fight for Freedom" ist ein Titel?

"(Eurobox) Hidden & Dangerous AddOn - Fight for Freedom" noch ein Titel? Oder Untertitel?

"AddOn zum Klassiker..." Bestimmt eine Beschreibung...

"AddOn zum Klassiker..." Wie jetzt? Noch eine Beschreibung? Naja, sicher ist sicher...

"/images/product/16210834381046670508_tmp_small.jpg" Aha. Ein relativer Link zu einem Produktbild

...


"4.00||5026555032339||0||" was ist das alles und wieso gibt es Leerspalten.

Ohne die Definition, was die einzelnen Spalten zu bedeuten haben, kannst du damit
wenig anfangen.

Woher hast du diese Daten überhaupt?

Es sieht danach aus, das du auf die interne "Datenbank"
der homepage von Gameworld.de gestoßen bist
und jetzt versuchst, diese DB in ein _vernünftiges_ Format zu speichern.

Legal ist das sicher, aber der Aufwand wäre mir viel zu hoch.


----------



## Jen (5. Apr 2007)

Nee, ich habe die Daten von meinem Vorgsetzten bekommen, damit ich damit kleine Programme erstelle und Java besser lerne. Weiß nicht, wo er sie her hat.

Die Bezeichnungen siehst Du im Code, den ich  vorhin gepostet habe, in dieser Map. Also elems[0] ist Artikelnummer, elems[8] ist EAN, ...

Die Leerspalten gibt es, weil nicht zu jedem Artikel in jeder Spalte was eingetragen ist, also z.B. ein Buch keinen MagicKartentyp hat.

Hm ich weiß nicht, wie ich meine Frage verständlicher stellen könnte.. :bahnhof:


----------



## Jen (5. Apr 2007)

Also quasi:
Wie speichere ich z.B. elems[6] in "Preis" usw.?
Geht das irgendwie mit equals?


----------



## Jen (5. Apr 2007)

Ok, die Frage war blöd, ich gebs zu. 

Edit: Die Frage war noch blöder. *Rückzug


Edit:
Jetzt eine Frage, die hoffentlich besser ist:

Ich habe meine Hashmap jetzt in der main. Was muss ich tun, damit in meiner Product-class "category" aus der Hashmap erkannt wird, also wie übergeb ich das?


```
...

   public static void main(String[] args) {
	   System.out.println(args[0]);
	   System.out.println(args[1]);
       System.out.println(readFromFile(new File("C:/src/java/anwendungen/Demoshop/Liste"),args[0],args[1]));
       
 	 HashMap<String, Integer> category = new HashMap<String, Integer>();
	 category.put("Artikelnummer", 0);
	 category.put("EAN", 8);
	...usw...
	 category.put("YuGiOhEdition", 36);
	 category.put("YuGiOhSeltenheit", 37);       
   }
}
```


```
public class Product {

	public Product parseFrom(String source, String ArtNr, String Preis) {
		      String[] elems = source.split("\\|");

	 if (ArtNr.equals(elems[0])) {
//    	  System.out.println("Treffer: " + elems[0]);
    	  
    		for (int i = 0; i < elems.length; i++ ){
    			System.out.println(elems[i]);
    		}
	 }
			 if (category != null){
				 System.out.println(elems[category.get("Preis")]);
				 }
		      return this;
		   }
}
```


----------



## Leroy42 (5. Apr 2007)

Jen hat gesagt.:
			
		

> Also elems[0] ist Artikelnummer


Okay...



			
				Jen hat gesagt.:
			
		

> elems[8] ist EAN, ...



Und was ist mit elems[1] bis elems[7] ?  :shock: 



			
				Jen hat gesagt.:
			
		

> Die Leerspalten gibt es, weil nicht zu jedem Artikel in jeder Spalte was eingetragen ist



Schon  klar, das ist logisch und üblich.



			
				Jen hat gesagt.:
			
		

> also z.B. ein Buch keinen MagicKartentyp hat.



Wo kommt denn jetzt die Spalte MagicKartentyp auf einmal her.

Grundsätzlich:

Du mußt zu jeder Spalte wissen, was sie bedeutet und als welchen
Typ (String, int, double, ...) du die zugehörigen Werte speichern willst.

Dann mußt du eine Klasse erstellen, die sämtliche Attribute besitzt.

Dann mußt du in den Instanzen dieser Klasse den gelesenen
Wert aus elems[spaltenIndex] zuweisen

String einfach so als elems_, int mittels Integer.parseInt(elems), usw.

Dann erst kannst du mit den eingelesenen Daten etwas anstellen:
Suchen, ausgeben, was auch immer.

Das was du bis jetzt hast ist eigentlich gar nichts, und es macht
keinen Sinn auf deine Fragen zu antworten, WENN wir sie überhaupt
verstehen könnten.  _


----------



## Guest (11. Apr 2007)

Noch ne kurze Frage:
Was muss ich bei _____ einfügen, damit ich die categorys aus der HashMap übergeben kann?

```
public class Categories(______ category) {

	 HashMap<String, Integer> category = new HashMap<String, Integer>();
	 category.put("Artikelnummer", 0);
	 category.put("Titel", 1);
	 category.put("Beschreibung", 3);
	 category.put("Bild", 5);
     ............
```


----------



## Leroy42 (11. Apr 2007)

Anonymous hat gesagt.:
			
		

> Noch ne kurze Frage:
> Was muss ich bei _____ einfügen, damit ich die categorys aus der HashMap übergeben kann?
> 
> ```
> ...



Am besten gar nichts!   

Was versuchst du da eigentlich? Du willst _eine Klasse parametrisieren_?  :shock:  :autsch: 

Es hat wirklich keinen Sinn, zu versuchen, deine Fragen
zu beantworten, solange du noch nicht mal das Basiswissen
verstehst/beherrscht. Du kommst mir vor, wie ein Blinder(*) mit Krückstock,
der sich versucht im Urwald zurechtzufinden, indem er von einem
Baum zum nächsten Busch stolpert.

Vorschlag: Vergiß dein Vorhaben (vorläufig) und fang an zu  :###  :###  :### 


Sorry, für die harten Worte, aber *so* findest du im Java-Urwald
nie die nächste Pommes-Bude und verhungerst elendig.  :cry: 




(*) Nichts gegen Blinde!


----------



## NTB (11. Apr 2007)

Ich würde Dir auch raten, ganz klein anzufangen. Schnapp Dir ein Buch (Empfehlungen gibts hier im Forum) oder halt online und fang ganz vorne mit Hello World an.


----------

