为了账号安全,请及时绑定邮箱和手机立即绑定

String用法课后练习改编后无法出结果,求原因?

String用法课后练习改编后无法出结果,求原因?

陈纪堂 2017-02-13 11:21:10
自己将课后练习改了可以用户自己输入的,并可以自己查询的,但是最后的次数变无法统计了。。不太清楚是什么原因,刚刚入手java,希望有大神帮忙看下 package com.imooc; import java.util.Scanner; /**  *   * 功能:统计用户输入的字符串中,用户所需查询的字符出现的次数  * 分析:可以通过循环遍历字符串中的每一个字符,判断是否是用户需要查询的字符,  * 如果是,则可以累加统计出现的次数  *  */ public class test4 { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("请输入你要定义的数组:"); //定义一个字符串 String s=input.next(); System.out.println("请输入您要查询的元素:"); //定义一个查询的字符 String c=input.next(); int num=0;//出现次数 for (int i =0;i<s.length();i++){ //依次获取每个字符,判断是否是字符c //if(s.charAt(i)==c){ if(c.equals(s.charAt(i))){ num++;//累加统计次数 } } System.out.println("字符"+c+"出现的次数:"+num); } }
查看完整描述

3 回答

已采纳
?
ziom

TA贡献948条经验 获得超1109个赞

s.charAt(i)返回的是一个char,而c是个String字符串,所以不能这么比较。

应该要把s.charAt(i)返回的值转换成字符串,转换方式有两种,如下:

if(c.equals(s.charAt(i)+"")){ // 通过加上一个空字符串""的方式                
    num++;//累加统计次数
}
if(c.equals(String.valueOf(s.charAt(i)))){ // 通过String的valueOf()方法              
    num++;//累加统计次数
}

求采纳!

查看完整回答
3 反对 回复 2017-02-13
?
时间啊

TA贡献17条经验 获得超21个赞

如图:

//img1.sycdn.imooc.com//58a140c40001979312680650.jpg

查看完整回答
1 反对 回复 2017-02-13
  • 3 回答
  • 0 关注
  • 1493 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信