# string in int [] speichern



## Schaaaf (25. Feb 2011)

Hallo,

ich habe eine Textdatei in der Strings gespeichert sind. Ist es möglich diese Strings in einem int[]  zu speichern.
Also ca. so :

- ersten string auslesen und in int[] speichern
- zweiten string auslesen und in int[] anfügen
- usw.

Geht die Umformung irgendwie?


----------



## dehlen (25. Feb 2011)

Schaaaf hat gesagt.:


> Hallo,
> 
> ich habe eine Textdatei in der Strings gespeichert sind. Ist es möglich diese Strings in einem int[]  zu speichern.
> Also ca. so :
> ...



also ich würde die Strings auslesen und dann per ascii tabelle umformen in zahlen


----------



## Haave (25. Feb 2011)

Sind diese Strings gültige Int-Werte?
Wenn ja: Integer.parseInt(String s)
Wenn nein, was hast du dann damit vor?


----------



## AlexSpritze (25. Feb 2011)

Stellen diese Strings denn Arrays  von Ganzzahlen dar? Dann sollte das kein Problem sein.

Oder willst du die Strings irgendwie in Integer-Arrays kodieren?

Vielleicht hast du eine Beispiel-Datei für uns.


----------



## Schaaaf (25. Feb 2011)

Die Strings in der Datei sieht z.B. so aus :

safdsfdv
dsfdgfbhgf
dfddgf
dfgfghfh

Also nichts, was annähernd ein int oder anderer num wert ist.


----------



## Mizar (25. Feb 2011)

Ich weiß zwar nicht genau was du damit bezwecken willst bzw. wofür du das genau benötigst, aber wenn man nach dehlens Idee geht, könnte man das Ganze zum Beispiel so bewerkstelligen:

```
public static void main(String[] args)
{
	String str = "safdsfdv";
	int[] intArray = new int[str.length()];
	for(int i = 0, end = str.length(); i < end; ++i) {
		intArray[i] = str.charAt(i);
	}
	// Als Test alle Werte ausgeben.
	for(int i: intArray) {
		System.out.println(i);
	}
}
```
Es wäre aber natürlich hilfreich zu wissen, was du damit genau vorhast, dann könnte man dir womöglich noch eine bessere Lösung oder andere Ideenansätze anbieten.


----------



## Simon_Flagg (25. Feb 2011)

wie wärs mit int[] iwas = str.toCharArray(), chars sind ja im prinzip auch ganzzahlen

lg


----------



## Schaaaf (25. Feb 2011)

@Simon Flagg : das funktioniert Typen mäßig nicht
@Mizar : Dann habe ich den Ascii Wert... 

Habe nochmal genau geschaut. Folgende Werte sind in der Datei 
[12]
[13]
[14]
usw.

Diese muss ich nun in einem int[] ablegen. Da ich aber ja nur sting (?) lesen kann aus der Datei, muss ich diese ja dann umformen.


```
String zeile = null;
int xy;

while ((zeile = in.readLine()) != null) {
    zeile = zeile.replace("[", "");
    zeile = zeile.replace("]", "");

    xy = Integer.parseInt(zeile);
					
    int[] intArray = new int[zeile.length()];
						
}
```


----------



## xehpuk (25. Feb 2011)

Ja, mit 
	
	
	
	





```
Integer.parseInt(String)
```
 erstellst du aus einem String einen int.
Nur weißt du vorher ja nicht, wie groß der Array sein muss.


----------



## Schaaaf (25. Feb 2011)

Manchmal sieht man den Wald vor lauter Bäumen nicht.

Danke an alle


----------



## Ebur (26. Mrz 2011)

Ein Integer ist in der Regel 4 Byte groß, abhängig vom System.
Ein Char ist 1 Byte groß.
Folglich lassen sich relativ einfach 4 char Werte in einem Integer Wert speichern:
Bsp 4 zeichen großer String

```
String str = "iwas";
int strInInt = 0;

strInInt += str[0]; strInInt = strInInt << 8;
strInInt += str[1]; strInInt = strInInt << 8;
strInInt += str[2]; strInInt = strInInt << 8;
strInInt += str[3];
```

Evtl müssen die Indexwerte bei 3 beginnen und dann dekrementiert werden, weiss grad nich wierum die Bitwerte im System gespeichert werden


----------

