public class HelloWorld {
public static void main(String[] args) {
// 定义一个字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出现次数
int num = 0;
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for ( char i : s )
{
// 获取每个字符,判断是否是字符a
if ( i=='a' ) {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + num);
}
}
**这个问题的关键是要将字符串转换为字符数组**
public class HelloWorld {
public static void main(String[] args) {
// 定义一个字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
//字符串转换为字符数组,使用toCharArray()方法
char[] ch=s.toCharArray();
// 出现次数
int num = 0;
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for ( int i=0; i<s.length(); i++ )
{
// 获取每个字符,判断是否是字符a
if ( ch[i]=='a' ) {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + num);
}
}
楼上大佬,受教了
for ( char i : s ) 换成for( char i : s.toCharArray() )
楼主你这其实离成功不远了,只要到s的后面加上toCharArray()方法就行,原因上面都有提到就是,增强for循环遍历的是数组,你前面的定义的类型变量要与:后面的数组类型相匹配,所以只要把后面的字符串转换为和前面char型变量i相匹配的char型数组就ok
public class HelloWorld {
public static void main(String[] args) {
// 定义一个字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出现次数
int num = 0;
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for ( char i : s .toCharArray() )
{
// 获取每个字符,判断是否是字符a
if ( i=='a' ) {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + num);
}
}
public class HelloWorld {
public static void main(String[] args) {
// 定义一个字符串
String[] s = { "a", "l", "j", "l", "k", "d", "s", "f", "l", "k", "j",
"s", "a", "d" };
// 出现次数
int num = 0;
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for (String i : s) {
// 获取每个字符,判断是否是字符a
if (i.equals("a")) {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + num);
}
}
你应该这样。
for ( char i : s ),循环遍历是针对数组的,这条语句中s是字符串而不是数组,如果这样做的话需要将字符串s转换成字符数组!
public class HelloWorld {
public static void main(String[] args) {
// 定义一个字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出现次数
int num = 0;
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for (int i=0;i<s.length();i++)
{
// 获取每个字符,判断是否是字符a
if (s.charAt(i)=='a') {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + num);
}
}
你看下要循环遍历每个字母,然后用当前的去跟a比较,