我已经从这个网站上的一个好答案复制了这个代码(计算一个字符串中的字符并返回计数)并稍微修改它以满足我自己的需要。 但是,我似乎在我的方法中遇到异常错误。
我很感激这里的任何帮助。
请原谅我的代码中的任何错误,因为我还在学习Java。
这是我的代码:
public class CountTheChars {
public static void main(String[] args){
String s = "Brother drinks brandy.";
int countR = 0;
System.out.println(count(s, countR));
}
public static int count(String s, int countR){
char r = 0;
for(int i = 0; i<s.length(); i++){
if(s.charAt(i) == r){
countR++;
}
return countR;
}
}
}
以下是例外:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method count(String) in the type CountTheChars is not applicable for the arguments (int)
at CountTheChars.main(CountTheChars.java:12)
答案 0 :(得分:1)
您在方法public static int count(String s, int countR)
中缺少一个return语句。目前,如果int
,则不会返回s.length() == 0
。
这应该按预期工作:
public class CountTheChars {
public static void main(String[] args) {
String s = "Brother drinks brandy.";
int countR = 0;
System.out.println(count(s, countR));
}
public static int count(String s, int countR) {
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'r') {
countR++;
}
}
return countR;
}
}
答案 1 :(得分:1)
2个问题:
进行s.charAt(i)比较时的count方法是将单词s中的每个字母与你设置为0的变量r进行比较。这意味着,从技术上讲,你的方法是cOunting句子中出现数字0的次数。这就是为什么你得到0.为了解决这个问题,删除你的r变量并在你的比较中,使s.charAt(i)=='r'作为比较。注意r Rio周围的撇号意味着你特意指的是角色r。
对于字符串为空的情况,你的count方法没有正确返回,这意味着它的长度为零,这意味着你的for循环没有运行,你的方法将跳过它以及返回你在那里的声明。要解决这个问题,请在方法的最底部移动return语句,这样无论你输入什么字符串,return语句总是会返回(因为你的方法需要返回一个int,因此应该返回)
< / LI> 醇>答案 2 :(得分:0)
为什么不能使用s.length()
来计算String s
中的字符数(即字符串的长度)?
编辑:更改为包含“char r
的出现次数”。您将该功能称为count(s,countR, r)
,并在char r = 'a'
char
或您想要的任何main
public static int count(String s, int countR, char r){
countR= 0;
for(int i = 0; i<s.length(); i++){
if(s.charAt(i) == r){
countR++;
}
return countR;
}
}