我输入的字符串是“他是一个非常非常好的男孩,不是吗?”
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
String[] split = s.split("[',',''','?','\\s','(',')',',',';']");
for(String s1:split){
if(s1.equalsIgnoreCase(""))
{
s1.trim();
}
System.out.println(s1);
}
预期结果:
实际结果:
答案 0 :(得分:1)
只需将+
放在括号中即可
String[] split = s.split("[',',''','?','\\s','(',')',',',';']+");
或将其简化为:
String[] split = s.split("[,'?\\s();]+");
。
它将按您的预期工作,因为它现在可以连续匹配多个字符。
您也将不再需要使用trim()
并只需致电:
for(String s1:split){
System.out.println(s1);
}
答案 1 :(得分:1)
.trim()
删除空格。即" "
成为""
。但是,无法将其从列表中删除。 String.split()
不了解您的列表。
以下内容将满足您的需求:
String[] split = s.split("<your regex>");
List<String> list = Arrays.asList(split);
list.stream() // convert to a stream for easy filtering
.filter(s -> s.trim().equals("")) // if s.trim().equals(""), remove it from the list/stream
.forEach(System.out::println); // print every remaining element