问答详情
源自:2-4 Java 中的 String 类常用方法 Ⅱ

各位大神,题目是:统计指定字符串中字符 ‘a’ 出现的次数...为什么if ( s[i]=="a") 不可以,要改成if(s.charAt(i))=='a')????

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[i]=="a") {
                // 累加统计次数
				num++; 
			}
		}
		System.out.println("字符a出现的次数:" + num);
	}
}


提问者:angel我的梦 2015-08-28 11:29

个回答

  • 慕丝6059041
    2015-08-28 11:43:27

    你这个s是个字符串,不是数组啊!不是数组不可以这样写,得先定义数组

  • qq_焰色如火_0
    2015-08-28 11:42:21

    一个是赋值,一个是检索特定的值

  • ahdruid
    2015-08-28 11:40:58

    @Test
    	public void test1() {
    		// 定义一个字符串
    		String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
    		char[] s2 = s.toCharArray();
    		char t = 'a';
    
    		// 出现次数
    		int num = 0;
    
    		// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
    		for (int i = 0; i < s.length(); i++) {
    			// 获取每个字符,判断是否是字符a
    			if (s2[i] == t) {
    				// 累加统计次数
    				num++;
    			}
    		}
    		System.out.println("字符a出现的次数:" + num);
    	}

    char类型的数据只能和char类型的进行匹配

  • 阿西咕噜
    2015-08-28 11:37:53

    首先是代码语法问题,java的String类型不支持[]取单个元素的,这是C/C++的语法,再者"a"是一个字符串,'a'是一个字符,两个是不一样的,字符串比较要用equal方法