StringTokenizer の代わりに正規表現を使用して文字列を分割したい。String.split(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);
}
}
入力を入力する[a\m]
と、配列の長さが3として返され、
a m
a の前にもスペースがあります。なぜこれが起こっているのか、どうすれば修正できるのか、誰でも説明できますか。結果の配列に余分なスペースは必要ありません。