steve77 Geschrieben 20. Juni 2008 Geschrieben 20. Juni 2008 Hallo Leute, hab eine Frage zum „splitten“ von Strings. Es sieht folgendermaßen aus. Ich haben einen String diesen will ich in 5 Teile teilen. Wie mache ich das am besten? Bis jetzt habe ich folgendes gemacht: public static String NoSplitting(){ int i = StringKek.length(); float x = i/5; //runden int kekParts = Math.round(x); if(i % kekParts > 0) kekParts += 1; ArrayList myStringParts = new ArrayList(); int k = 0; for(int j = 0; j < kekParts; j++) if(j == (kekParts - 1)){ String myPart = StringKek.substring(k); myStringParts.add(myPart); }else { String myPart = StringKek.substring(k, 5 * (j+1)); k = 5 * (j+1); myStringParts.add(myPart); } return myStringParts.toString(); } Das ergibt folgendes Ergebnis: No: a57e1d2ab03952072150ceadf7295e843cc25f7e0cf74eaac8a46d766de4fe7b Splitted - No: [a57e1, d2ab0, 39520, 72150, ceadf, 7295e, 843cc, 25f7e, 0cf74, eaac8, a46d7, 66de4, fe7b] No ist der String der gesplittet werden soll. Splittet – No ist dann der geteilte String. Ich möchte nun aber nur 5 teile haben, nicht 13. Weiss jemand rat? Vielen Dank Gruß steve Zitieren
flashpixx Geschrieben 20. Juni 2008 Geschrieben 20. Juni 2008 Sorry, ich wollte Deinen Code nicht durch sehen, anbei mal meine Version ohne Garantie: String myString = "abcdefghijklmnopqrstuvwxyz"; int parts = 5; String[] myParts = new String[ parts ]; for(int i=0; i < parts; i++) { int start = i*myString.length()/parts; int end = (i+1)*myString.length()/parts; if (end > myString.length()) end = myString.length(); myParts[i] = myString.substring(start, end); } for(int i=0; i < parts; i++) System.out.println( myParts[i] ); HTH Phil Zitieren
steve77 Geschrieben 20. Juni 2008 Autor Geschrieben 20. Juni 2008 Excellent, hat funktioniert, super vielen dank!!!! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.