如何检查字符串中是否只有选定的字符?

2022-09-02 20:06:18

检查字符串是否仅包含以下字符的最佳和最简单的方法是什么:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_

我想要像这样一个伪代码的例子:

//If String contains other characters
else
//if string contains only those letters

请并感谢:)


答案 1
if (string.matches("^[a-zA-Z0-9_]+$")) {
  // contains only listed chars
} else {
  // contains other chars
}

答案 2

对于该特定类的 String,请使用正则表达式“\w+”。

Pattern p = Pattern.compile("\\w+");
Matcher m = Pattern.matcher(str);

if(m.matches()) {} 
else {};

请注意,我使用 Pattern 对象编译正则表达式一次,这样它就永远不必再次编译,如果您要进行多次检查或在循环中执行此检查,这可能会很好。根据java文档...

如果要多次使用某个模式,则编译一次并重用该模式将比每次调用此方法更有效。