[Java] Integer auseinandernehmen

speedfreak1988

Cadet 3rd Year
Registriert
Jan. 2007
Beiträge
44
Hi!
Ich habe einen 4-stelligen Integer (z.B. 1234) und 4 Variablen (a,b,c,d) und möchte der Variablen a die 1.Stelle, b die 2. usw. zuordnen.

Wie mach ich das?
Ich kann den Integer nicht in String umwandeln und hab mit Java noch so ziemlich Null Erfahrung.

THX


Tom
 
So sollte es gehen:
Code:
String [B]variable [/B]= Integer.toString([B]ZAHL[/B])
Ansonsten guck dir mal die Prozedur .split(String arg0) an
Die zerlegt dir einen String und gibt ein String-Array zurück... Glaub aber eher nicht das du es gebrauchen wirst

Und für den Einstieg in Java kann ich das hier empfehlen: Java ist auch eine Insel
Da es ein OpenBook ist, kannst du es dir runterladen. Aktuelle Version basiert auf Java 6
 
ok hat geklappt danke!

aber ich find die .split(String arg0) prozedur nicht....

oder gibts ne leichtere methode z.b. per schleife? also unter vb würd ichs mit ner schleife lösen
 
Die leichteste ist wohl .split(String arg0)
Beispiel:
Code:
String x = "A.B.C.D";
String pos[] = this.split("\\W");
Wenn du jetzt das Array pos ausgeben lässt:
Code:
for (int i = 0; i < 3; i++) {
     System.out.println(pos[i].toString());
}
Erhälst du als Ausgabe in der Konsole:
A
B
C
D

Das heißt: Das split("\\W") bedeutet, dass er bei jedem Punkt abschneidet.
Somit erhält man dann nur A; B; C; D.

Und damit du split() verwenden kannst, musst du ein vorhandenen String einem String-Array zuweisen!

EDIT: Über eine Schleife geht es auch recht einfach. Allerdings würde ich dann eine ArrayList benutzen und nicht 4 verschiedene Variablen! Wenn dir das nicht zusagt dann nimm einfach nur ein Array!
 
Zuletzt bearbeitet:
geht zwar sicherlich auch etwas "codeoptimierter" aber das wäre da meine Idee


PHP:
public class test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int zahl = 12345;
		String tempString;
		
		tempString = Integer.toString(zahl);
	
		char[] charArray = new char[tempString.length()];
		
		for (int i=0; i<tempString.length();i++)
		{
			charArray[i]=tempString.charAt(i);
			System.out.println(charArray[i]);
		}

	}

}
 
@Harlekiin: Ich mach deine Variante mal kurz:
Code:
[COLOR=#000000][COLOR=Black]public class [/COLOR][COLOR=Black]test [/COLOR][COLOR=Black]{
  [/COLOR][COLOR=Black]public static [/COLOR][COLOR=Black]void main[/COLOR][COLOR=Black]([/COLOR][COLOR=Black]String[/COLOR][COLOR=Black][] [/COLOR][COLOR=Black]args[/COLOR][COLOR=Black]) {
    [/COLOR][COLOR=Black]int zahl [/COLOR][COLOR=Black]= [/COLOR][COLOR=Black]12345[/COLOR][COLOR=Black]; 
    [/COLOR][COLOR=Black]String tempString[/COLOR][COLOR=Black]; 
    
    [/COLOR][COLOR=Black]tempString [/COLOR][COLOR=Black]= [/COLOR][COLOR=Black]Integer[/COLOR][COLOR=Black].[/COLOR][COLOR=Black]toString[/COLOR][COLOR=Black]([/COLOR][COLOR=Black]zahl[/COLOR][COLOR=Black]); 
    
    [/COLOR][COLOR=Black]char[/COLOR][COLOR=Black][] [/COLOR][COLOR=Black]charArray [/COLOR][COLOR=Black]= tempString.toCharArray()[/COLOR][COLOR=Black];
    for (char c : charArray) {
      System.out.println(c);
    }
[/COLOR][COLOR=#007700][COLOR=Black]   }
} [/COLOR]  [/COLOR][/COLOR]
 
Also noch kürzer sollte es nicht werden. Er ist doch noch ein Anfänger :D

PS:Ich würde noch weiter kürzen ;)
Code:
public class test {
    public static void main(String[] args) {
        int zahl = 12345;	    
        char[] charArray = Integer.toString(zahl).toCharArray();
        for (char c : charArray) {
            System.out.println(c);
         }
    }
}
 
Zuletzt bearbeitet:
Ich wollte auch nicht drauf aufmerksam machen, wie kurz man es machen kann, sondern auf die Methode String.toCharArray().
 
Auch wenn das sich schwer nach einer Schulaufgabe anhört und bereits Lösungen im Überfluß gepostet wurden, mal so ein Hinweiß für 2 Zahlen (Basiswissen in Mathe setzte ich mal Voraus):
Code:
int a = zahl % 10;
int b = (zahl % 100) / 10;
....
Der Rest sollte dann klar sein.:freaky:
 
Zurück
Oben