java - 如果字符串包含一个字母,我怎样才能保持一个while循环
问题描述
while (firstName.//includes a,b,c,d,e,f,g.etc)
{
//other code here
}
如果包含字母,我希望while循环继续运行,请帮忙。
解决方案
用作.*?[\\p{L}].*
正则表达式。
如果您确定您的文本是纯英文的,您可以使用.*?[A-Za-z].*
或.*?[\\p{Alpha}].*
替代。
解释:
.*?
不情愿地寻找任何字符,直到它屈服于另一个模式(例如[\\p{L}]
在这种情况下)。[\\p{L}]
查找单个字母,因为where指定[]
了任何字母(包括 unicode)。\\p{L}
\\p{L}
.*
寻找任何字符。
演示:
public class Main {
public static void main(String[] args) {
String[] arr = { "123a", "a123", "abc", "123", "123a456", "123ß456" };
for (String firstName : arr) {
if (firstName.matches(".*?[\\p{L}].*")) {
System.out.println(firstName + " meets the criteria.");
}
}
}
}
输出:
123a meets the criteria.
a123 meets the criteria.
abc meets the criteria.
123a456 meets the criteria.
123ß456 meets the criteria.
请注意,如果.*?[A-Za-z].*
使用,123ß456
将不符合条件,因为ß
它不是英文字母的一部分。
推荐阅读
- c# - 在 foreach 循环中回滚或提交事务
- pandas - 为什么熊猫将索引名称放在单独的行中
- python - 一个函数怎么只能取正数?
- c++ - 在一个函数中重载多个运算符
- java - 带有 java 套接字的 Docker:无法识别数据流
- python - 如何使用数据类型编号或字符串检查回文
- node.js - http GET 请求在 Heroku 应用程序(PERN 堆栈)上超时 | 错误代码:H12
- html - 如何使引导图标位于按钮的中心?
- youtube-api - 即使实际上没有超出 YouTube 数据 API 配额
- node.js - 处理 HTTPS 的最佳实践是什么?