首页 > 解决方案 > 如果字符串包含一个字母,我怎样才能保持一个while循环

问题描述

while (firstName.//includes a,b,c,d,e,f,g.etc)
{
  //other code here
}

如果包含字母,我希望while循环继续运行,请帮忙。

标签: java

解决方案


用作.*?[\\p{L}].*正则表达式。

如果您确定您的文本是纯英文的,您可以使用.*?[A-Za-z].*.*?[\\p{Alpha}].*替代。

解释:

  1. .*?不情愿地寻找任何字符,直到它屈服于另一个模式(例如[\\p{L}]在这种情况下)。
  2. [\\p{L}]查找单个字母,因为where指定[]任何字母(包括 unicode)\\p{L}\\p{L}
  3. .*寻找任何字符。

演示:

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将不符合条件,因为ß它不是英文字母的一部分。


推荐阅读