在Java

时间:2016-03-02 02:29:39

标签: java

我能得到一些帮助。非常感谢:

我想计算一行中*的数量。 当我尝试编译下面的代码时

    import java.util.Scanner;
/**
 * Write a description of class StarCount here.
 *
 * @author Damon
 * @version (a version number or a date)
 */
public class StarCount {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        int starCount = 0;
        String input = keyboard.nextLine();
        while(!input.equals("#")){

            for(starCount=0; starCount<=input.length(); starCount++){
                if (input.charAt(starCount).equals('*')){
                    System.out.println(starCount);
                }//if
            }//for

        }//while

    } //main

} // class StarCount

但它提出了

  

“char无法解除引用”

我花了最后1.5个小时在这上面,我很困惑。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

顾名思义charAt返回一个字符,因此您需要使用==来比较原语

 if (input.charAt(starCount) == '*') {

答案 1 :(得分:2)

if (input.charAt(starCount).equals('*')){

在此行中您不能对char这样的基本类型使用equals方法。

所以要比较,你应该使用== operator。

if (input.charAt(starCount) == '*'){