Jag försöker få till en explode-funktion, som splittar en sträng in till en array. Men det funkar ju inte... Får ett NullPointerException när jag försöker använda funktionen.
Kolla in StringTokenizer-klassen. Den splittar en sträng med valbart tecken, sen plockar du ut delsträngarna likt detta:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"> StringTokenizer st = new StringTokenizer("denna sträng splittas vid mellanslag", " ");
while (st.hasMoreTokens()) {
println(st.nextToken());
}
------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny
Jag vill alltså ha en funktion som returnerar en array med olika index, alltså array[0], array[1], osv.
Tänkte att man kunde blanda in StringTokenizer i en funktion, och fick fram följande. Men men... Den funkar ju inte :(
public static String[] explode(String txt, String chr) {
String[] returnArr;
StringTokenizer expl;
int chars = 0;
int done = 0;
for(int i = 0; i < txt.length(); i++)
if(txt.charAt(i) == chr.charAt(0))
chars++;
returnArr = new String[chars++];
expl = new StringTokenizer(txt, chr);
while(expl.hasMoreTokens()) {
returnArr[done] = expl.nextToken();
done++;
}
return returnArr;
}
ArrayIndexOutOfBoundsException får jag när jag kör min fil, men ingenting vid kompileringen...
Det blir fel på raden returnArr[done] = expl.nextToken(); i loopen while(expl.hasMoreTokens())...
public String[] explode(String str, char ch){
StringTokenizer st = new StringTokenizer(str, ch+"");
String[] result = new String[st.countTokens()];
int i = 0;
while(st.hasMoreTokens())
result[i++] = st.nextToken();
return result;
}
Härligt nerkortad och trixig ;)
------------------ Life feeds on life feeds on life feeds on life feeds on life...