用java分割字符串,如果分割符是连续的多个不同的字符怎么办?比如
I,.;am;.!eating;.?something //分割符是 , . ; ! ?我要输出 I am eating something因为一般处理一个或者两个连续的地相同的分隔符还可以,3个或者3个以上的连续不同的字符串我就不知道了。
谢谢哪位帮个忙!
I,.;am;.!eating;.?something //分割符是 , . ; ! ?我要输出 I am eating something因为一般处理一个或者两个连续的地相同的分隔符还可以,3个或者3个以上的连续不同的字符串我就不知道了。
谢谢哪位帮个忙!
//I,.;am;.!eating;.?something
String regex ="(I).*(am).*(eating).*(something)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher("I,.;am;.!eating;.?something");
while(m.find()) {
System.out.println(m.group(1) +" " + m.group(2) + " " + m.group(3) +" " + m.group(4));
}
}
因为我想分割的目标字符串很大我先试一下。
str=str.replaceAll("\\p{Punct}", " ");
System.out.println(str);output:I am eating something;
多余的空格就容易去掉了
String s = "I,,..;am;.!!eating;.??something";
String str = s.replaceAll("[,*|\\.*|;*|!*|\\?*]"," ");
System.out.println(str);是这个意思不
String str="I,.;am;.!eating;.?something";
String[] st=str.split("[,.;!?]");
for(String card:st){
System.out.print(card+" ");
}
不标准的练练O(∩_∩)O哈哈~
regex=[,;/]*,就表示只要出现这三种,不管有多少个,都split掉
s.split(regex);
String str = "I,.;am;.!eating;.?something";
String[] strs = str.split("[,.;!?]+");
for(int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
}
}
这是高中的语文阅读理解理吗? 1)分割符只有那5个2)要连续出现3个或以上3)其他符号,或出现三次以下的要不变
String str = "I,.;am;.!eating;.?something. and.;!?,what?.;.are,.!you;.,doing?";
str=str.replaceAll("[,.;!?]{3,}", " ");
System.out.println(str);输出:I am eating something. and what are you doing?
StringUtils.join("I,.;am;.!eating;.?something".split("\\p{Punct}+")," ")
得到的就是 I am eating somethingStringUtils.join() 是 commons-lang 中的类方法。