我对编程很陌生。我想检查字符串s是否包含a-z字符。我使用:
if(s.contains("a") || s.contains("b") || ... {
}
但有没有办法用更短的代码来完成这一点?非常感谢
使用正则表达式。模式。matches()方法可以很容易地做到这一点。例如:
Pattern.matches("[a-z]", "TESTING STRING a");
如果您需要检查大量字符串,可以在内部编译此类以提高性能。
除了正则表达式之外,假设您真的想知道字符串是否只包含字符,您可以使用Character.is字母(char)-
boolean hasNonLetters = false;
for (char ch : s.toCharArray()) {
if (!Character.isLetter(ch)) {
hasNonLetters = true;
break;
}
}
// hasNonLetters is true only if the String contains something that isn't a letter -
从Javadoc forCharacter.is字母(char)
,
如果字符的一般类别类型由字符提供,则该字符被视为字母。getType(ch)是以下任一项:
UPPERCASE_LETTER
LOWERCASE_LETTER
TITLECASE_LETTER
MODIFIER_LETTER
OTHER_LETTER
您可以使用正则表达式
// to emulate contains, [a-z] will fail on more than one character,
// so you must add .* on both sides.
if (s.matches(".*[a-z].*")) {
// Do something
}
这将检查字符串是否至少包含一个字符a-z
要检查所有字符是否为a-z,请使用:
if ( ! s.matches(".*[^a-z].*") ) {
// Do something
}
有关java中正则表达式的详细信息
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
如果是-than字符串应该被移除。 我想知道为什么不是每个带有“L”的字符串都被去掉? 结果是:
问题内容: 我有一个购物车,在下拉菜单中显示产品选项,如果它们选择“是”,我想使页面上的其他一些字段可见。 问题是购物车的文本中还包含价格修饰符,每个产品的价格修饰符可能不同。以下代码有效: 但是我宁愿使用这样的东西,它不起作用: 我只想在所选选项包含单词“是”的情况下执行操作,并且会忽略价格修饰符。 问题答案: 像这样: …或者您可以使用波浪号运算符: 之所以有效,是因为如果根本找不到该字符串,
问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:
代码非常简单。它会检查所有字符一次,并替换第一次出现的字符。然而,输入=“aab”失败。我不知道为什么。编程语言是java。 编辑 我改了密码。现在它抛出了一个输入错误 错误: 线程“main”java中出现异常。util。正则表达式。PatternSyntaxException:索引1附近的未关闭组(^at java.util.regex.Pattern.error,Pattern.java:1
问题内容: 在一次采访中,要求用Java编写代码以显示没有连续重复字符的字符串。 例如:谷歌,苹果,亚马逊;它应该显示“ Amazon” 我写了代码,发现继续重复char。有什么算法或有效的方法可以找到它吗? 问题答案: class replace { 逻辑:将字符串中的字符与上一个字符进行匹配。 如果找到string [i] == string [i-1]。打破循环。选择下一个字符串。 如果您到