package de.axone.tools.string; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class LimitedSplittor { public static class LimitedCharToArraySplittor { public String [] split( String s, char split, int n ){ final String [] result = new String[ n ]; final int len = s.length(); int num=0; int i, last=0; for( i=0; i<len; i++ ){ if( split == s.charAt( i ) ){ result[ num ] = s.substring( last, i ); last = i+1; num++; if( num == n-1 ) break; }; } if( len>=last ){ result[ num ] = s.substring( last ); } return Arrays.copyOf( result, num+1 ); } } public static class LimitedCharToListSplittor { public List<String> split( String s, char split, int n ){ final List<String> result = new ArrayList<>( n ); final int len = s.length(); int num=0; int i, last=0; for( i=0; i<len; i++ ){ if( split == s.charAt( i ) ){ result.add( s.substring( last, i ) ); last = i+1; num++; if( num == n-1 ) break; }; } if( len>=last ){ result.add( s.substring( last ) ); } return result; } } }