检查字符串是否只是字母+空格?

use*_*218 4 java xcode loops for-loop boolean

我想编写一个传递字符串的静态方法,并检查该字符串是否仅由字母和空格组成.我可以根据需要使用String的方法length()和charAt(i).

我在考虑以下内容:(对于伪代码抱歉)

public static boolean onlyLettersSpaces(String s){
for(i=0;i<s.length();i++){
if (s.charAt(i) != a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) {
return false;
break;
}else {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)

我知道我的编码可能有错误,并且可能有更简单的方法,但请告诉我您的建议!

Ada*_*ost 7

使用正则表达式.如果它以字母和空格开头,包含和结尾,则仅匹配.

^[ A-Za-z]+$
Run Code Online (Sandbox Code Playgroud)

在Java中,将其初始化为模式并检查它是否与您的字符串匹配.

Pattern p = Pattern.compile("^[ A-Za-z]+$");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
Run Code Online (Sandbox Code Playgroud)


Ell*_*sch 5

这不是您测试字符相等性的方式,一个简单的解决方法是

public static boolean onlyLettersSpaces(String s){
  for(i=0;i<s.length();i++){
    char ch = s.charAt(i);
    if (Character.isLetter(ch) || ch == ' ') {
      continue;
    }
    return false;
  }
  return true;
}
Run Code Online (Sandbox Code Playgroud)