提问者:小点点

与regex Java的split()有关的问题


导入java.io; 导入java.util.;

公共类解决方案{

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String s = scan.nextLine();
    String s1=s.replaceAll("[^a-zA-Z]"," ").trim();
    String[] word=s1.split("\\s+");
    System.out.println(word.length);
    for(String item : word)
    {
        System.out.println(item);
    }
    scan.close();
}

I/P:-任何不带字母的字符串(例如@##%&*%^$!@#$%^#@%^%$#@$)O/P:-1

上面是我的代码,但是当我运行它时,如果我输入一些没有a-z或a-z的字符串,它会给我一个空格,比如‘;3#$@%^32',它会返回一个空格,如果我调用数组,它也会返回一个空格。长度它会返回1作为大小,有人能帮我吗?我怎么能在末尾得到空的(甚至没有空格)数组? 提前谢谢你。


共1个答案

匿名用户

嘿,如果你想检查像@$%512这样的东西是否不在文本中,你可以使用它。 如果它不是你想要的,试着用另一种方式说它Scanner scaner=new Scanner(system.in);

    String s = scan.nextLine();
    String regex = "^[a-zA-Z]+$";

    Pattern pattern = Pattern.compile(regex);

    Matcher matcher = pattern.matcher(s);

    System.out.println(matcher.matches());

    scan.close();