String的元素是城镇的名称,以大写字母开头。填写字符串的元素(不超过50)。获取包含字母“e”2,3或4次的所有城镇的结果,并且不包含字母“p”。
我无法弄清楚如何编写一个代码,找到至少有两个“e”而不是“p”的单词。
public class Проект4ж {
static String[] towns = { "Еелена", "Асееновград", "Долно Калугерово", "Китеен", "Калофеер"};
public static void main(String[] args) {
for (int i=0; i<towns.length; i++){
if(towns[i].contains(!="p"){
System.out.println(towns[i]);
}
}
}
}
对不起,这些城镇都是保加利亚人,只是老师要求我们这样做..无论如何,你得到了重点。我以为我需要用“charAt”做循环的另一部分,但我不确定如何。
答案 0 :(得分:0)
你可以得到这样一个字母的出现次数
int count = StringUtils.countMatches( yourString, "e");
所以检查它是2,3还是4
你必须为你的字符串数组中的所有字符串执行此操作
所以你需要一个Foreach
foreach (String s in towns)
{
int count = StringUtils.countMatches( s, "e");
int countP = StringUtils.countMatches( s, "p");
if( (count == 2 || count == 3 || count == 4 ) && countP != 0 )
System.out.println(s);
}
答案 1 :(得分:0)
您在之前的评论中对int e = 0
提出了正确的想法。
for (int i=0; i<towns.length; i++){
if(!towns[i].contains("p")){
int e=0;
for (int j=0; j<towns[i].length; j++){
if(towns[i].charAt(j) == 'e' || towns[i].charAt(j) == 'E'){
e++;
}
}
if(e>1 && e<5){//This is assuming you don't want to print cities with more than 4 E's
System.out.println(towns[i]);
}
}
}