有一个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;
}
答案 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;
}