如何查找ArrayList中的String是否包含作为char的数字

时间:2015-10-22 12:10:51

标签: java regex string arraylist hashmap

有一个HashMap有id和名字。名称有一些限制。符合条件的字符串应添加到ArrayList

i)第一个字符应该很小,最后一个字符应该是Capital ii)名称中至少应有一位数字。

示例:ravi5raJ


public static ArrayList<String> getName(HashMap<Integer,String> map) {
    ArrayList<String> a1=new ArrayList<String>();

    for (Integer key: map.keySet()) {
        int size=map.get(key).length();
        String name= map.get(key);
        int count=0;
        if(name.substring(0, 1)== name.substring(0, 1).toLowerCase())
        {
            if(name.substring(size-1, size-1)==name.substring(size-1, size-1).toUpperCase())
            {
                for (int i = 0; i < size ; i++) {
                    //logic to check for int
                    a1.add(name);
                }
            }

        }
    }

    return a1;
}

2 个答案:

答案 0 :(得分:1)

我认为您可以使用简单的正则表达式测试所有内容:

if( name.matches( "[a-z].*?\\d.*[A-Z]" ) ){ ...

答案 1 :(得分:0)

它现在工作得很好。

  public static ArrayList<String> getName(HashMap<Integer,String> map) {
            ArrayList<String> a1=new ArrayList<String>();

            for (Integer key: map.keySet()) {
                int size=map.get(key).length();
                String name= map.get(key);
                int count=0;
                if( name.matches( "[a-z].*?\\d.*[A-Z]" ) )
                    a1.add(name);

            }
            return a1;
        }