导入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作为大小,有人能帮我吗?我怎么能在末尾得到空的(甚至没有空格)数组? 提前谢谢你。
嘿,如果你想检查像@$%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();