我能得到一些帮助。非常感谢:
我想计算一行中*的数量。 当我尝试编译下面的代码时
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个小时在这上面,我很困惑。
非常感谢任何帮助。
答案 0 :(得分:5)
顾名思义charAt
返回一个字符,因此您需要使用==
来比较原语
if (input.charAt(starCount) == '*') {
答案 1 :(得分:2)
if (input.charAt(starCount).equals('*')){
在此行中您不能对char这样的基本类型使用equals方法。
所以要比较,你应该使用== operator。
if (input.charAt(starCount) == '*'){