如何检查字符串是否仅包含字母?

问题描述 投票:0回答:2

我正在寻找解决我的简单问题的方法。我想检查 String 是否只包含字母,如果它包含其他任何内容,例如句点、特殊字符,那么应该报告它。

例如,如果我的字符串是“abcd”,那么它应该返回 true ,如果字符串是“ab.cd”。 ,那么它应该返回 false。

由于某些原因我不想使用Character.isLetter(),而对使用Pattern.match()更感兴趣

string
2个回答
0
投票

无论您使用哪种语言,您正在寻找的流行词都是:正则表达式。

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]
范围内。必须至少有一个字符 (
+
)。


0
投票

您可以在 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
  }
 }
© www.soinside.com 2019 - 2024. All rights reserved.