黑马程序员技术交流社区
标题:
统计字母出现的次数
[打印本页]
作者:
侯茂绵
时间:
2012-7-16 16:44
标题:
统计字母出现的次数
本帖最后由 侯茂绵 于 2012-7-16 22:36 编辑
class StringDemo
{
public static void main(String[] args)
{
int a=0;
String str ="wo ai meimv";
for (int i=0;i<str.length();i++)
{
if (str.charAt(i)=='m')
{
a++;
}
System.out.println("m的次数:"+a);
}
}
}
为啥结果是:
m的次数:0
m的次数:0
m的次数:0
m的次数:0
m的次数:0
m的次数:1
m的次数:1
m的次数:1
m的次数:2
m的次数:2
不明白????????
作者:
孙新强
时间:
2012-7-16 16:49
System.out.println("m的次数:"+a); 这句代码的位置错了
修改后程序如下:
class StringDemo
{
public static void main(String[] args)
{
int a=0;
String str ="wo ai meimv";
for (int i=0;i<str.length();i++)
{
if (str.charAt(i)=='m')
{
a++;
}
}
System.out.println("m的次数:"+a);
}
}
作者:
黑马刘涛
时间:
2012-7-16 16:53
class StringDemo
{
public static void main(String[] args)
{
int a=0;
String str ="wo ai meimv";
for (int i=0;i<str.length();i++)
{
if (str.charAt(i)=='m')
{
a++;
}
}
System.out.println("m的次数:"+a);
}
}
复制代码
System.out.println("m的次数:"+a);拿到外面去!
作者:
王冰
时间:
2012-7-16 16:54
class StringDemo
{
public static void main(String[] args)
{
int a=0;
String str ="wo ai meimv";
for (int i=0;i<str.length();i++)
{
if (str.charAt(i)=='m')
{
a++;
}
//System.out.println("m的次数:"+a);//这句提到for循环外面就会实现只打印一次的效果了,不然就会循环一次打印一次,直到循环结束
}
System.out.println("m的次数:"+a); //
改到这里就正常了
}
}
作者:
鲍霄霄
时间:
2012-7-16 17:00
System.out.print放错位置了,输出的时候应该放到for外面,不然他是会跟着循环输出的
@6O}ATBU}3ELISTKTMRZZDF.jpg
(35.11 KB, 下载次数: 128)
下载附件
2012-7-16 17:00 上传
作者:
李东升
时间:
2012-7-16 17:08
次数统计没错的,输出这么多次是因为你输出语句在for循环内部,所以才会循环一次打印一次。
作者:
位雪
时间:
2012-7-16 17:09
本帖最后由 位丹丹 于 2012-7-16 17:11 编辑
class StringDemo
{
public static void main(String[] args)
{
int a = 0;
String str = "wo ai meimv";
for (int i=0;i<str.length();i++)
{
if(str.charAt(i)=='m')
{
a++;
}
System.out.println("m的次数:"+a);//你的输出语句是在for循环中,if语句每判断出一个'm',便会输出一次,所以会出现你的情况,应该把输出语句放在for循环外,即下面的位置,当然这个输出语句是要删除的
}
System.out.println("m的次数:"+a);
}
}
复制代码
作者:
樊占江
时间:
2012-7-16 17:31
因为你的print在for循环里面,print应该放在循环外面。你可以试一试
作者:
乞文超
时间:
2012-7-16 21:56
class StringDemo
{
public static void main(String[] args)
{
int a=0;
String str ="wodmaimeimv";
char[] ch=str.toCharArray();
for (int i=0;i<ch.length;i++)
{
if (ch[i]=='m')
a++;
}
System.out.println("m的次数:"+a);
}
}
你出现的情况是由于你的打印语句在for循环中每一次的循环都会打印一次输出语句,你可以先把字符串编程字符数组,然后在进行比较,
作者:
侯茂绵
时间:
2012-7-16 22:35
位丹丹 发表于 2012-7-16 17:09
懂啦 谢谢:(
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2