我正在寻找解决我的简单问题的方法。我想检查 String 是否只包含字母,如果它包含其他任何内容,例如句点、特殊字符,那么应该报告它。
例如,如果我的字符串是“abcd”,那么它应该返回 true ,如果字符串是“ab.cd”。 ,那么它应该返回 false。
由于某些原因我不想使用Character.isLetter(),而对使用Pattern.match()更感兴趣
无论您使用哪种语言,您正在寻找的流行词都是:正则表达式。
A Regex(正则表达式) 是一个字符序列,它定义了一个搜索模式,您可以使用它来匹配/测试您的字符串。正则表达式的实现和语法取决于您使用的语言,它们在不同语言之间可能有很大差异。
Javascript 中的示例如下所示:
var stringValid = "abaca"
var stringInalid = "ab()aca"
var pattern = /^[a-z]+$/;
// test the pattern against your string
testResult = pattern.test(stringValid); // should be true
testResult = pattern.test(stringInvalid); // should be false
语法含义如下:从开始(
^
)到结束($
),每个字符都应该在[a-z]
范围内。必须至少有一个字符 (+
)。
您可以在 Java 中使用正则表达式与 Pattern 和 Matcher 来实现此目的。这是一个简单的例子:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class AlphabetCheck {
public static boolean isAlphabetOnly(String input) {
// Define the regex pattern for alphabets only
String regex = "^[a-zA-Z]+$";
// Compile the pattern
Pattern pattern = Pattern.compile(regex);
// Match the input string against the pattern
Matcher matcher = pattern.matcher(input);
// Return whether the input matches the pattern
return matcher.matches();
}
public static void main(String[] args) {
// Test cases
System.out.println(isAlphabetOnly("abcd")); // true
System.out.println(isAlphabetOnly("ab.cd.")); // false
}
}