вопрос, связанный с split () из регулярного выражения java - PullRequest
2 голосов
/ 19 июня 2020

импорт java .io. ; import java .util. ;

publi c class Solution {

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

выше - это мой код, но когда я его запускаю, он дает мне пробел, если Я ввожу некоторую строку, не имеющую z или AZ, например '; 3 # $ @% ^ 32', она возвращает пробел, а также, если я вызываю array.length, она возвращает 1 в качестве размера, может ли кто-нибудь, пожалуйста, помочь мне с этим. как я могу получить пустой (даже без пробела) массив в конце? заранее спасибо.

1 Ответ

0 голосов
/ 19 июня 2020

Привет, если вы хотите проверить, нет ли чего-то вроде @ $% 512 в тексте, вы можете это использовать. и если это не то, что вы ищете, попробуйте сказать по-другому

    Scanner scan = 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...