我想使用正则表达式而不是StringTokenizer分割字符串。我正在使用String.split(正则表达式); 正则表达式包含元字符,当我使用\ [它在返回数组中返回额外的空间。Java Regex元字符在分割时返回额外空间
import java.util.Scanner;
public class Solution{
public static void main(String[] args) {
Scanner i= new Scanner(System.in);
String s= i.nextLine();
String[] st=s.split("[!\\[,?\\._'@\\+\\]\\s\\\\]+");
System.out.println(st.length);
for(String z:st)
System.out.println(z);
}
}
在i进入输入[a\m]
它返回数组长度为3和
a m
空间也有一个前。 任何人都可以请解释为什么发生这种情况,我该如何纠正它。我不希望结果数组中有额外的空间。
你的意思是有一个输入字符串'String s =“[a \\ m]”'? –
因为你匹配'['和']':http://regexr.com/3ckg2 – MortenMoulder
我在cmd处键入[a \ m],并且想要a和m作为输出 – Linkon