好的,所以我正在为java做家庭作业。这是作业: 编写一个方法,使用以下标头查找字符串中指定字符的出现次数: public static int count(String str,char a)
编写一个测试程序,提示用户输入一个字符串后跟一个字符,并显示该字符串中出现的字符数。
我的代码中的错误是这一行: char a = input.nextChar;它说" nextChar无法解析或不是字段"
这是我的代码:
import java.util.*;
public class CountOccurances {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner (System.in);
System.out.println("Enter a string: ");
String str = input.nextLine();
System.out.println("Enter a character: ");
char a = input.nextChar;
int letterCheck = count(str, a);
System.out.println("The character " + a + "appeared" + letterCheck + "times in" + str);
}
public static int count(String str, char a)
{
int count = 0;
for (int i = 0; i < str.length(); i++)
{
if (str.charAt(i) == a)
{
count++;
}
}
return count;
}
}
答案 0 :(得分:4)
char a = input.nextChar;
需要
char a = input.nextChar();
在第一种情况下,您说input
有一个名为nextChar
的静态变量,这不是您想要的。您试图通过在最后添加input
来调用()
对象上的方法。
据说即使这样也不行,因为Scanner
类首先没有这种方法。你想要做的就是这样的事情
System.out.println("Enter a string: "); //Prompt for string
String str = input.nextLine(); //Get the string
System.out.println("Enter a character: "); //Prompt for char
String userInput = input.nextLine(); //Get the char AS A STRING
int letterCheck = count(str, userInput.charAt(0)); //Call your method with the first
//char entered
当用户输入要计数的字符时,您需要使用返回nextLine()
的{{1}}方法获取该输入。然后,您可以通过将该字符串的第一个char作为第二个参数传递来调用您的方法。
答案 1 :(得分:2)
你可能想说input.nextChar()
,因为你试图调用一个方法。但这不会有帮助,因为Scanner
没有nextChar()
方法。
您可能需要做的是:
String inputLine = input.nextLine();
char a = inputLine.charAt(0);
从用户输入整行,然后将a
设置为输入字符串中的第一个字符。 (如果用户在没有输入字符的情况下点击Enter,它也会抛出异常;如果没有字符可以返回,charAt
将抛出异常。为了真正安全,你需要类似的东西此:)
char a;
while (true) {
String inputLine = input.nextLine();
if (inputLine.length() > 0) {
a = inputLine.charAt(0);
break;
} else {
System.out.println("Your input string is empty");
}
}
答案 2 :(得分:2)
char a = input.nextChar;
您正在尝试调用上面一行中的方法,而不是调用方法的方法。方法应该像这样调用:
char a = input.nextChar();
但是Scanner
类没有nextChar()
方法。因此,您可以使用Scanner.nextLine()
读取一行并获取该行的第一个字符,如下所示。
System.out.println("Enter a character:");
char a = input.nextLine().toCharArray()[0];
此处input.nextLine()
读取一行,即String
。
toCharArray()
将String
读取转换为字符数组。例如:
考虑读取字符串为"HAI"
,它将转换为{'H', 'A', 'I'}
。
input.nextLine().toCharArray()[0]
将获得该字符数组的第一个索引。在示例中,它将是&#39; H&#39;。但是在你的情况下,当你正在阅读字符时,数组只有一个元素。