我如何获得'a'的索引?
我当前的输出:5
int freq = 0;
String s = "Happy days are here again";
char a = 'a';
//processing
for(int i = 0;i<=s.length()-1;i++){
if(s.charAt(i)==a){
freq++;
}//end of if
}//end of for
System.out.println(freq);
预期输出:1,7,11,20,22
答案 0 :(得分:0)
这可以做到。只需将它们连接为字符串并打印。
String s = "Happy days are here again";
char a = 'a';
// processing
String indices = "";
for (int i = 0; i <= s.length() - 1; i++) {
if (s.charAt(i) == a) {
indices += (i + ",");
} // end of
} // end of for
System.out.println(indices.substring(0, indices.length() - 1));
您还可以将它们放在列表中并打印出来。
List<Integer> indices = new ArrayList<>();
indices.add(i);
Then later - System.out.println(indices):
答案 1 :(得分:0)
当前,您正在计算字母a的实例并打印实例数。如果需要索引,建议您打印出循环索引i。
int freq = 0;
String s = "Happy days are here again";
char a = 'a';
//processing
for(int i = 0;i<=s.length()-1;i++){
if(s.charAt(i)==a){
System.out.print(i + ",");
}//end of if
}//end of for
System.out.println(freq);
如果严格执行“预期输出”,则需要添加其他逻辑以逗号分隔索引。
答案 2 :(得分:0)
您可以执行以下操作:
class Main {
public static void main(String str[]) {
String s = "Happy days are here again";
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'a') {
System.out.print(i+"\t");
} // end of if
} // end of for
}
}
输出:
1 7 11 20 22
如果要显示以逗号分隔的索引,可以按以下步骤操作:
class Main {
public static void main(String str[]) {
String s = "Happy days are here again";
StringBuilder sb=new StringBuilder();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'a') {
sb.append(i+",");
} // end of if
} // end of for
String sbStr=sb.toString();
sbStr=sbStr.substring(0,sbStr.lastIndexOf(",")); //Remove the last comma
System.out.println(sbStr);
}
}
输出:
1,7,11,20,22
您的代码将计算给定a
中String
的频率,而不是显示其存在的索引。
答案 3 :(得分:0)
也许尝试创建一个存储字符出现索引的数组列表?
ArrayList<Integer> answer = new ArrayList<Integer>;
for (int i = 0; i < s.length; i++) {
if (s.charAt(i) == a) {
answer.add(i);
}
}
然后根据需要打印阵列列表。