Java 得到一个;方法不适用“;编译错误

Java 得到一个;方法不适用“;编译错误,java,Java,有人能告诉我为什么在第15行出现计数(s1)的错误吗?下面是我的代码以及我从eclipse获得的确切信息: LetterCount类型中的方法计数(String,char)不适用于参数(String) 包数; 导入java.util.Scanner; 公共类信件计数{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in); System.out.print(“输入字符串:”); 字符串s=input.nextLine(); System.out.prin

有人能告诉我为什么在第15行出现计数(s1)的错误吗?下面是我的代码以及我从eclipse获得的确切信息:

LetterCount类型中的方法计数(String,char)不适用于参数(String)

包数;
导入java.util.Scanner;
公共类信件计数{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入字符串:”);
字符串s=input.nextLine();
System.out.print(“输入字符:”);
字符串s1=input.next();
System.out.println(s1+“出现”+计数(s1)+“时间”);
}
公共静态整数计数(字符串s,字符s1){
整数计数=0;
对于(int i=0;i
您的方法声明需要两个参数,调用时只传递一个参数

您可能还想传递变量“s”。

System.out.println(s1+“出现”+count(s1)+“time(s)”

应该是:


System.out.println(s1+“出现”+计数(s,s1)+“时间”)

您只向count传递了一个参数(Sring s,char s1)

容易犯错误。

修改此选项

System.out.println(s1 + "appears" + count(s1, someCharVariable) + "time(s).");
它需要2个参数,而您只提供了一个

这是唯一的错误。我已经复制了您的代码并进行了相应的测试


试试这个。您必须应用一些条件来确保通过语句
String s1=input.next()输入的内容
是Java中的有效字符

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    System.out.print("Enter a string: ");
    String s = input.nextLine();

    System.out.print("Enter a character: ");
    String s1 = input.next();

    System.out.println(s1 + " appears " + count(s, s1.charAt(0)) + " time(s).");
}

public static int count(String s, char s1) {
    int count = 0;
    for (int i = 0; i < s.length(); i++)
    {
        if (s.charAt(i) == s1)
        {
            count++;
        }
    }
    return count;
}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入字符串:”);
字符串s=input.nextLine();
System.out.print(“输入字符:”);
字符串s1=input.next();
System.out.println(s1+“出现”+计数(s,s1.charAt(0))+“时间”);
}
公共静态整数计数(字符串s,字符s1){
整数计数=0;
对于(int i=0;i
该方法需要2个参数,但您只向其传递1个参数。您到底希望它做什么?错误消息听起来好像您应该为这个
count
函数传递字符串和字符,但您只传递了
s1
。这是正确的吗?我也想知道为什么这个标题“返回不工作”?另外,由于有几个人回答了您的问题,您应该标记对您最有帮助的一个。
s1
应该是
someCharVariable
。是的,s1应该更改为char。我尝试了,但仍然得到一个错误:-方法计数(String,char)在类型LetterCount中不适用于参数(String,String)-类型LetterCount中的方法计数(String,char)不适用于参数(String),那么这是主方法的system.out.print部分中的计数(s,s1)吗?@user1019838正确吗(需要注意的是,在正确调用后,我还没有运行代码来查看它是否真正实现了您想要的功能:)@user1019838不完全正确;您将单个字符声明为字符串,而您的方法需要一个字符。请更改其中的一个。