String[] name splitten

Madl

Grünschnabel
möchste einen String[] splitten nach bestimmter Zeichenanzahl z.B. an der stelle 4 und 12 und 16. Gibt es da eine Methode/Befehl der das bei Java kann?
Danke schon mal für Antworten
 
Binds als Lib ein, und rufe StringSplitter.splitStrings(String[], int[]) auf. Ich hoffe, dass ist das was du wolltest, deine Erklärung ist ja mehr als mager.
 

Anhänge

  • StringSplitter_fat.jar
    1,7 KB · Aufrufe: 22
Also ich hab die Methode public static IDCardCheckResult checkIDD(String[] mrz) throws NullPointerException, IllegalArgumentException {
und bekommt mrz übergeben, das ist der maschinenlesbare Bereich eines Personalausweises und der besteht aus 2 zeilen, jetzt will ich die verschiedenen bereiche splitten, damit ich sie einzeln untersuchen kann.
Außerdem muss die erste zeile mit "IDD" beginnen und genau 3 blöcke, getrennt durch "<<", besitzen.
hoffe das ist jetzt ein wenig klarer. danke
 
Aber auch nur ein wenig.

Java:
package splitter;

public class StringSplitter
{
	private static final int[] POSITIONS_TO_SPLIT = {
		4, 12, 16
	};
	
	public static String[] splitStrings(String stringToSplit) throws IllegalArgumentException
	{
		if(!stringToSplit.startsWith("IDD"))
			throw new IllegalArgumentException();
		
		String[] stringParts = new String[POSITIONS_TO_SPLIT.length];
		for(int i = 0, size = POSITIONS_TO_SPLIT.length, lastSplitAt = 0; i < size; i++)
		{
			int splitTo = (POSITIONS_TO_SPLIT[i] + 1);
			stringParts[i] = stringToSplit.substring(lastSplitAt, splitTo);
			lastSplitAt = splitTo;
		} 
		
		return(stringParts);
	}
}

Ich denke, dass willst du.
Mein Ausweiß beginnt aber nicht mit IDD sondern schaut so aus:

Code:
P<AUTNACHNAME<<VORNAME<<<<<<<<<<<<<<....
EINPAARZAHLENBZWBUCHSTABEN<8AUTNOCHSONECHECKSUM<<<<<<<<<<<...0
 
Zurück