String splitten

steve77

Grünschnabel
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 beste? Bis jetzt habe ich folgendes gemacht:

Code:
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
 

matdacat

Erfahrenes Mitglied
Java:
String deinString = "a57e1d2ab03952072150ceadf7295e843cc25f7e0cf74eaac8a46d766de4fe7b";   
int parts = 5;
int partlength = deinString.length()/parts;        
ArrayList myStringParts = new ArrayList();
for (int i = 0; i < parts; i++)
  if (i<parts-1)
    myStringParts.add(deinString.substring(i*partlength, (i+1)*partlength));
  else
    myStringParts.add(deinString.substring(i*partlength, deinString.length()));        
        
  System.out.println(myStringParts.toString());
Falls die Länge des Strings nicht ohne Rest durch fünf teilbar ist, enthält der letzte Arrayeintrag das letzte Fünftel des Strings plus dem Rest.