如何同时按空格,点和逗号分隔字符串?我想摆脱它们,只说些话。
我的空间代码:
str=array.get(0).split(" ");
根据建议,我写了这个
str=array.get(0).split("[ ]|[.]|[,]|[ \t]");
但是我看到一个新问题
答案 0 :(得分:2)
使用.split()
可能会导致数组中的条目为空。
尝试一下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String text = "This is... a real sentence, actually.";
Pattern reg = Pattern.compile("\\w+");
Matcher m = reg.matcher(text);
while (m.find()) {
System.out.println(m.group());
}
答案 1 :(得分:1)
方法split可以与Regex模式一起使用,因此您可以匹配更详细的情况以分割字符串。
适合您情况的匹配模式是:
public static void main(String[] args) {
long a = 0;
long b = 0;
Random r = ThreadLocalRandom.current();
for (int i = 0; i < 1000; i++) {
double d = r.nextDouble()*(r.nextBoolean() ? 1.0 : -1.0);
a += d*100;
b += (long)(100*d);
//System.out.println(a + " " + b + " " + d);
}
System.out.println(a);
System.out.println(b);
}
正则表达式说明:
[。,] +-方括号创建字符集,该字符集将匹配该集中的任何字符。
[。,] + -加号是一个量词,它将与以前的标记(字符集)匹配一次或多次,这解决了标记彼此相邻并产生空的问题数组中的字符串。
您可以使用以下代码对其进行测试:
[ \.,]+
输出为:
你好
世界!
StackOverflow
测试
正则表达式