これはsubstringはない正確に何...あなたがする必要がある
static String[] split(String source, int ... sizes){
int n = source.length(), start = 0;
String [] partials = new String[sizes.length];
for(int i = 0; i < sizes.length; i++){
int end = sizes[i] < 0 ? n : start + sizes[i];
partials[i] = source.substring(start, start = end);
}
return partials;
}
ことの一つは、例えば、-1
にrest
を翻訳されている。
static String[] split(String source, String sizes){
return split(source, Arrays.stream(sizes.split(","))
.mapToInt(it -> it.equals("rest") ? -1 : Integer.parseInt(it))
.toArray());
}
次に、split(String, String)
を使用して方法を達成することができます。例えば:
String string = "AAABBB CCDDD FFGGGHHHI KKK";
String definition = "2,6,3,1,6,7,rest";
String[] results = split(string, definition);
// ^--- ["AA", "ABBB C", "CDD", "D", " FF", "GGGHHHI", " KKK"]
[Javaで文字列を分割する方法]の可能な重複(https://stackoverflow.com/questions/3481828/how-to-split-a-string-in-java) – UmarZaii