# String array in Int array parsen und umgekehrt



## McSnoop (29. Nov 2004)

Ziel:

String array in Int array parsen und umgekehrt

bis jetzt klappt keines von beiden,

die eine richtung würde ich so machen.


```
int newfield[] = null;

   for(i=0;i<=field_temp.length;i++){
    newfield[i]=Integer.parseInt(field[i]);
   }
```

Fehler: nullpointerexception aber weiß noch nicht wo.

dachte das es an dem initiiertem int feld liegt, aber wars nicht, wenn ich das "=null" wegnehme dann meckert er weil nicht initiiert. =(

Die grenzen der schleife stimmeb auch. =(



Wie geht das anders herum???

Das dumme ist nämlich das das ganze Proggie ausschlieslich mit strings arbeitet, weil das mit der dateiarbeit zusammenhängt wo diese verwendet werden, und ich das aber nicht mehr umstricken kann aus zeitlichen gründen. 

Das 2te Problem ist nämlich das das ganze noch sortiert zurück ins String array gegeben wird. 

Ich habe da auch meine eigenen Sortiertalgorithmen geschrieben. z.b. Selectionsort, das ist der der am schnellsten ist für meine Belange, weil die anzhal der zu sortierenden Elemente die 30 nicht übersteigt.

wenn mir einer nen Tip geben könnte, war das super.

mfg
Snoop


----------



## dotlens (29. Nov 2004)

```
int[] newfield = new int[field.length];

   for(i=0;i < field.length;i++){
    newfield[i]=Integer.parseInt(field[i]);
   }
```
so müsste das gehen

nullpointer war, weil newfield noch null war 
in java schreibt man int[] newfield und nicht int newfield[], auch wenn beides geht. ist einfach übersichtlicher...

falls du noch fragen zum string array hast kannst du diese ja dann noch stellen


----------



## Sky (29. Nov 2004)

Für die Umkehrung:

```
int[] intArray = ...;
String[] stringArray = new String[intArray.length);
for( i=0; i < intArray.length; i++){ 
  stringArray[i] = String.valueOf( intArray[i] );
}
```


----------



## dotlens (29. Nov 2004)

oder auch:

```
stringArray[i] = "" + inArray[i];
```

obwohl sky's lösung schöner ist


----------



## Sky (29. Nov 2004)

dotlens hat gesagt.:
			
		

> ```
> stringArray[i] = "" + inArray[i];
> ```



Die Lösung ist aus Performance-Sicht nicht schön gelöst. Das Zusammenfügen von Strings mittels +-Operator sollte man, wo möglich vermeiden.


----------



## dotlens (29. Nov 2004)

wenn du performant sein willst kannst du auch direkt Integer.toString(); aufrufern :bae:
denn:

```
public static String valueOf(int i) {
        return Integer.toString(i, 10);
    }
```

ne muss zugeben das wusst ich nicht, also danke!


----------



## McSnoop (29. Nov 2004)

thx für eure antworten. wird gleich mal ausprobieren.

snoop


----------

