Java 如何使用整数数组而不是正则表达式将字符串拆分到多个位置?

Java 如何使用整数数组而不是正则表达式将字符串拆分到多个位置?,java,arrays,string,split,Java,Arrays,String,Split,如果我有一个字符串: String s = "This is a string to test splitting on!"; 以及表示字符串内索引的整数数组: int[] indices = {4, 6, 9, 12, 15}; StringSplitter s = new StringSplitter("This is a string to test splitting on!", 4, 6, 9, 12, 15); for(String elem : s) { System.

如果我有一个字符串:

String s = "This is a string to test splitting on!";
以及表示字符串内索引的整数数组:

int[] indices = {4, 6, 9, 12, 15};
StringSplitter s = new StringSplitter("This is a string to test splitting on!", 4, 6, 9, 12, 15);
for(String elem : s)
{
    System.out.println(elem);
}
是否可以获得字符串数组,如:

"This",
" i",
"s a",
" st",
"rin",
"g to test splitting on!"
不通过索引循环调用
s.substring(索引[i],索引[i+1])
(或类似)


不幸的是,这些索引都是任意的,所以正则表达式没有帮助。基本上,我想找到split()的等价物,在这里我可以传递一个整数数组而不是正则表达式。

如果不想使用substring(),请尝试以下方法:


如果不想使用子字符串(),请尝试此操作:


没有。你必须自己写,但听起来你对如何去做有足够好的想法。是的。。。我希望有一种已经过效率测试的方法:(
String#substring()
是常数时间。你很好。如果你想自己写一个方法,那么为什么你不能使用子字符串方法?为什么要避免它?没有比循环和使用子字符串更快的方法了。没有。你必须自己写,但听起来你对如何去做有足够好的想法。是的……我希望有这样的方法这是一种已经过效率测试的方法:(
String#substring()
是常数时间。你很好。如果你想自己写一个方法,为什么你不能使用substring方法?为什么要避免它?没有比循环和使用子字符串更快的方法了。
StringSplitter s = new StringSplitter("This is a string to test splitting on!", 4, 6, 9, 12, 15);
for(String elem : s)
{
    System.out.println(elem);
}