# Integer Zahl in ein Array einbetten



## Gast (1. Feb 2005)

HAllO ...

Ich will die Ziffern einer Integer Zahl z.B  int = 12345; auf ein int[] Array verteilen, sodass im Array folgendes steht:
ziffer[] = {1, 2, 3, 4, 5};

Gibt es in Java dafür eine vordefinierte Methode, um diese Operation auszuführen?  Z.B.  "zifferArrayAus(12345);"

Hab dieses Problem zwar mir einer Schleife lösen können, frage mich aber ob das nicht einfacher geht ???:L:


```
int ziffer[] = new int[5];
int zahl = 12345;
int divisor=10000;

for(int i=0; i<5; i++){
   ziffer[i]=zahl/divisor;
   zahl-=divisor*ziffer[i];
   divisor/=10;
}
```

Durch googeln bin ich auf die Methode *toIntArray* gestoßen, weiß aber nicht ob es das ist was ich suche, da ich nicht geschafft habe diese Methode zu benutzen (bin ziehmlich neu in Java ^^).


----------



## Gast (1. Feb 2005)

Also ich kenne keine vordefinierte Methode toIntArray, aber du kannst sie dir ja selbst schreiben, würde wohl etwa wie folgt aussehen: 


```
public static int[] toIntArray(int n){
		n = Math.abs(n);
		String s = new String("" + n);
		int[] result = new int[s.length()];
		for(int k = result.length - 1; k >= 0; k--){
			result[k] = n % 10;
			n /= 10;
		}
		return result;
	}
```

Liefert für negative und für positive Zahlen halt das gleiche Array

_Beni: Codetags_


----------



## eclipse (1. Feb 2005)

Hallo,

ich hab auch mal eine Methode, spasseshalber, implementiert:


```
public static int[] intArray(int zahl) {

		String blub = Integer.toString(zahl);

		int intArr[] = new int[blub.length()];
		char charArr[] = new char[blub.length()];

		for (int i = 0; i < blub.length(); i++) {
			charArr[i] = blub.charAt(i);
			String tmp = new Character(charArr[i]).toString();
			intArr[i] = Integer.parseInt(tmp);			
		}
		return intArr;
}
```

Aufruf im Hauptprogramm:

```
int test[] = intArray(1234567890);
//int test[] = toIntArray(12345678901); // --> Fehlermeldung: The literal 12345678901 of type int is out of range
```

Leider bekommt man beim 2. Aufruf eine Fehlermeldung.
Weiss einer von euch warum, wieso?


----------



## bambi (1. Feb 2005)

uebergeb' mal einen long-Wert anstatt int an deine funktion.


----------



## mic_checker (1. Feb 2005)

Wenn ich mich nicht täusche dann hat int nur einen Wertebereich von -2147483647 bis 2147483647. Dein 12345678901 ist somit zu groß für den Wertebereich von int.


----------



## eclipse (1. Feb 2005)

an den Wertebereich kann's wohl liegen  :wink:


----------

