[Java] String zu int Array?

Diskutiere [Java] String zu int Array? im Developer Network Forum im Bereich Hardware & Software Forum; Hi, hab nochmal eine frage und zwar wie kann ich einen String den ich aus einer XML Datei eingelesen habe in ein int Array der entsprechenden...
  • [Java] String zu int Array? Beitrag #1
Penecho

Penecho

Bekanntes Mitglied
Dabei seit
19.09.2001
Beiträge
2.636
Reaktionspunkte
1
Ort
RLP
Hi, hab nochmal eine frage und zwar wie kann ich einen String den ich aus einer XML Datei eingelesen habe in ein int Array der entsprechenden grösse wandeln?

also z.B. wenn ich das benutze:
<defoffsetX>1,2,3</defoffsetX> und dazu das: getTagValue("defoffsetX",eElement)

gibt mir Java das als String zurück: 1,2,3


momentan habe ich das so gelöst, dass ich in dem XML die Werte aufgesplittet habe in der Form:

<def1offsetX>1</def1offsetX>
<def2offsetX>2</def2offsetX>
<def3offsetX>3</def3offsetX>

und dann per

Code:
int[] defoffsetX = {0,0,0};
    for (int i = 0; i == roleDef; i++){
         defoffsetX[i] = Integer.parseInt(getTagValue("def" + i+1 + "offsetX",eElement));
    }

das Array aufgefüllt :(

Im idealfall würde ich den string gerne automatisch in ein int array umwandeln lassen...


Cu


Penecho
 
  • [Java] String zu int Array? Beitrag #2
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Denke mal nicht, dass das mit der Methode, wie Du die XML-Datei einliest, so einfach geht (siehe anderer Thread).

Du könntest Dir eine Methode schreiben, der Du den Node übergibst und die dann den String in ein int-Array konvertiert und das zurückliefert.

Oder Du verwendest JAXB oder Serialisierung per XML. Wobei ersteres sicherlich felxibler ist und auch ab Java 6 zum Standard gehört.
 
  • [Java] String zu int Array? Beitrag #3
Penecho

Penecho

Bekanntes Mitglied
Dabei seit
19.09.2001
Beiträge
2.636
Reaktionspunkte
1
Ort
RLP
Hab folgendes gefunden:


Code:
[LEFT][COLOR=#AAAADD][B]String[/B][/COLOR] s = [COLOR=#FF0000]"1234"[/COLOR];
[COLOR=#993333]int[/COLOR][COLOR=#66CC66][[/COLOR][COLOR=#66CC66]][/COLOR] intArray = [COLOR=#000000][B]new[/B][/COLOR] [COLOR=#993333]int[/COLOR][COLOR=#66CC66][[/COLOR]s.[COLOR=#006600]length[/COLOR][COLOR=#66CC66]([/COLOR][COLOR=#66CC66])[/COLOR][COLOR=#66CC66]][/COLOR];
 

[COLOR=#B1B100]for[/COLOR] [COLOR=#66CC66]([/COLOR][COLOR=#993333]int[/COLOR] i = [COLOR=#CC66CC]0[/COLOR]; i < s.[COLOR=#006600]length[/COLOR][COLOR=#66CC66]([/COLOR][COLOR=#66CC66])[/COLOR]; i++[COLOR=#66CC66])[/COLOR] [COLOR=#66CC66]{[/COLOR]
    intArray[COLOR=#66CC66][[/COLOR]i[COLOR=#66CC66]][/COLOR] = [COLOR=#AAAADD][B]Character[/B][/COLOR].[COLOR=#006600]digit[/COLOR][COLOR=#66CC66]([/COLOR]s.[COLOR=#006600]charAt[/COLOR][COLOR=#66CC66]([/COLOR]i[COLOR=#66CC66])[/COLOR], [COLOR=#CC66CC]10[/COLOR][COLOR=#66CC66])[/COLOR];
[COLOR=#66CC66]}[/COLOR]
[/LEFT]

das wandelt von String s = "1234" zu int[] s = {1,2,3,4}

Frage ist, wie bacu ich das um, dass der von String s="1,2,3,4" zu int[] s = {1,2,3,4} wandelt?


Cu


Penecho
 
  • [Java] String zu int Array? Beitrag #4
skyborla

skyborla

Bekanntes Mitglied
Dabei seit
15.03.2003
Beiträge
1.308
Reaktionspunkte
0
Ort
127.0.0.1
Code:
StringTokenizer tokenizer = new StringTokenizer("1,2,3,4", ",");

int[] intAray = new int[tokenizer.countTokens()];

for(int i = 0; i < tokenizer.countTokens(); i++)
  intArray[i] =Integer.valueOf( tokenizer.nextToken() );

ungetestet!
 
  • [Java] String zu int Array? Beitrag #5
Penecho

Penecho

Bekanntes Mitglied
Dabei seit
19.09.2001
Beiträge
2.636
Reaktionspunkte
1
Ort
RLP
thx :)

einziges problem ist noch dass das letzte Element des Strings als 0 angezeigt wird, also bei "1,2,3" sind die 3 Tokens, 1, 2 und 0 (statt 1,2,3)...


Weisst zufällig noch woran das liegen könnte?


Cu


Penecho
 
  • [Java] String zu int Array? Beitrag #6
skyborla

skyborla

Bekanntes Mitglied
Dabei seit
15.03.2003
Beiträge
1.308
Reaktionspunkte
0
Ort
127.0.0.1
hmm das ganze kommt mir ein wenig komisch vor, mit ein wenig rumprobieren sieht man, das die .countTokens immer nur die hälfte der tatsächlich vorhandenen token zählt ... warum auch immer.

naja, dem beispiel in der api folgend, funktioniert zumindest das, auch wenns für mich irgendwie wie overkill ausschaut -.-
Code:
         StringTokenizer st = new StringTokenizer("1,2,3,4,5", ",");
         List<Integer> temp = new ArrayList<Integer>();
         
         while (st.hasMoreTokens()) {
             temp.add(Integer.valueOf( st.nextToken()));
         }
         
         Integer[] intArray = temp.toArray(new Integer[0]);
 
  • [Java] String zu int Array? Beitrag #7
Penecho

Penecho

Bekanntes Mitglied
Dabei seit
19.09.2001
Beiträge
2.636
Reaktionspunkte
1
Ort
RLP
hmm, es scheint mir irgendwie so zu sein, dass:

Integer[] defOffsetArray

nicht das selbe ist wie:

int[] defOffsetArray

dachte das ist beides integer :p Weil wenn ich das "int" nehme funzt das wieder alles nicht mehr... hat da noch wer einen Vorschlag?


Cu



Penecho
 
  • [Java] String zu int Array? Beitrag #8
Penecho

Penecho

Bekanntes Mitglied
Dabei seit
19.09.2001
Beiträge
2.636
Reaktionspunkte
1
Ort
RLP
hmm, es scheint mir irgendwie so zu sein, dass:

Integer[] defOffsetArray

nicht das selbe ist wie:

int[] defOffsetArray

dachte das ist beides integer :p Weil wenn ich das "int" nehme funzt das wieder alles nicht mehr... hat da noch wer einen Vorschlag?


Edit: weil da wird ja in ner anderen Klasse das hier überschrieben: int[] DEFENSE_BOUNDS = {-54,0,-32,32};
und das is ja type mismatch und kann nicht gecastet werden :(


Cu



Penecho
 
Thema:

[Java] String zu int Array?

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben