现在有一个字符串,类似asd123123hjjk123lou123lou123,
我需要把这个字符串以123为分割按顺序存入集合,注意123
也要存入集合,即以123为分割将字符串所有内容存入集合
------解决思路----------------------
不知道有没有现成api
stringtokenizer貌似不能按一个字段分只能按字段拆分的分
String str = "asd123123hjjk123lou123lou123";
Pattern p = Pattern.compile("123");
Matcher m = p.matcher(str);
while(m.find()) {
list.add(m.start());
list.add(m.end());
}
list.add(0);
list.add(str.length());
Collections.sort(list);
int size = list.size();
for(int i=0; i<size - 1; i++) {
System.out.println(str.subSequence(list.get(i), list.get(i+1)));
}
我只想到这个。。。好像略低效
------解决思路----------------------
String str = "asd123123hjjk123lou123lou123";
String ss = str.replaceAll("123", "#123#");
System.out.println(ss);
String[] s = ss.split("#");
for(String str1 : s){
if(!str1.equals("")){
System.out.println(str1);
}
}
------解决思路----------------------
List<String> list = new ArrayList<String>();
String s = "asd123123hjjk123lou123lou123";
String[] aa = s.split("(?=123)");
for (int i = 0; i < aa.length; i++) {
if (aa[i].startsWith("123")) {
list.add("123");
if (aa[i].length() > 3) {
list.add(aa[i].substring(3));
}
} else if (!aa[i].isEmpty()) {
list.add(aa[i]);
}
}
System.out.println(list);