2013-04-15 61 views
0

我被赋予一个任务来从以特定字母开头的数组列表返回单词,但我选​​择了字母c;我被告知我可以以另一种方式做到这一点,除了专门返回以println开头的每个元素之外的其他元素,除了使用ArrayList startswith方法外,我不知道除了使用ArrayList startswith方法以外还有其他方法,任何人都在照顾我?返回以特定字母开头的单词

public static ArrayList<String> letterC(ArrayList<String> list) 
{ 
    ArrayList<String> animals = new ArrayList<String>(); 
    ArrayList<String> letterC = new ArrayList<String>(); 
    String sweet = "c"; 
    animals.add("cape"); 
    animals.add("dog"); 
    animals.add("cougar"); 
    animals.add("moon"); 
    animals.add("conor"); 
    animals.add("bob"); 
    animals.add("tiger"); 
    animals.add("sun"); 
    for(int i = 0; i<animals.size(); i++) { 
     if(animals.get(i).startsWith(sweet.toUpperCase())) { 
      letterC.add(animals.get(i)); 
     } 
     if(animals.get(i).startsWith(sweet)) { 
      letterC.add(animals.get(i)); 
     } 
    } 
    if(letterC.size() >= 1) { 
     letterC.remove(1); 
     letterC.remove(letterC.size() - 1); 
    } 
    return letterC; 
} 

}

+3

'animals.get(index).charAt(0);' – Justin

+0

只有当这个大写的C动物对不对? – qvd

+0

当你检查'letterC.size()> = 1'时,我不明白你在做什么。为什么你想从列表中删除元素?看起来你应该在这一点上返回列表,因为它将包含所有以“C”开头的动物名称。 – jahroy

回答

2

这应该为你工作。

for(int i = 0; i<animals.size(); i++) { 
    if(animals.get(i).substring(0,1).equalsIgnoreCase(sweet)) { 
     letterC.add(animals.get(i)); 
    } 
+0

您应该编辑第一个if语句,因为基本数据类型没有方法。 ('char.equalsIgnoreCase') –

+0

感谢您的快速错误检查。呼。我在写完之后才意识到它。 – user2280897

+0

啊,是的!子!没有想到这一点。 – qvd

相关问题