实现一个拆分函数,如下所示:
split (input, listOfTokens) ==> listOfTokens
例如 1:
eg. split ( "abc,def.ghi", { "ef", "c" } )
==> { "ab", ",d", ".ghi" }
以下是基于java的实现:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SplitDemo {
public static void main(String[] args) {
String input = "abc,def.ghi";
List<String> list = new ArrayList<>();
list.add("ef");
list.add("c");
String[] tokens = new String[list.size()];
list.toArray(tokens);
split(input, tokens);
}
/**
* 拆分函数
* @param input
* @param tokens 令牌
*/
public static void split(String input, String... tokens) {
String[] ret = null;
for(String token : tokens) {
if(ret == null)
ret = input.split(token);
else {
List<String> temp = new ArrayList<>();
for(String s : ret)
Arrays.stream(s.split(token)).forEach(e -> temp.add(e));
ret = new String[temp.size()];
temp.toArray(ret);
}
}
Arrays.stream(ret).forEach(System.out::println);
}
}