Java初学者编码错误 - 类String中包含的方法不能应用于给定类型

时间:2016-10-22 10:51:12

标签: java

我有一些错误的代码,我确信这是一个简单的代码修复。这个想法是你输入一个动物的名字,如果它包含" dog"然后动物发出的噪音输出到屏幕:

import java.util.*;

class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("What animal is it?");
    String animal = sc.nextLine();

    if (animal.contains("dog")) {
        System.out.println("WOOF!");
    }
  }  
}

尝试运行代码时收到的消息显示:

Main.java:17: error: method contains in class String cannot be applied to given types;
    if(animal.contains()) {
             ^
  required: CharSequence
  found: no arguments
  reason: actual and formal argument lists differ in length
1 error

exit status 1

非常感谢任何想法,提前谢谢

3 个答案:

答案 0 :(得分:0)

如果你想检查String == dog

if(animal.equals("dog")){
    System.out.println("WOOF!");
}

答案 1 :(得分:0)

编译器没有收到您向我们展示的相同代码。在您的代码中,if语句String.contains()具有CharSequence参数,但编译器接收的代码具有String.contains()而没有参数。您刚刚犯了一个简单的错误:忘记保存,或者给编译器错误的文件。

答案 2 :(得分:0)

所以这是学校男生的错误。我认为这个错误与第一个if语句有关.....它不是,它指的是最后一个:

import java.util.*;
class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("What animal is it?");

    String animal = sc.nextLine();

    if(animal.contains("dog")){
        System.out.println("WOOF!");
    }

    if(animal.contains("cat")) {

    }

    if(animal.contains()) {

    }



  }
}

compliler没有强调责任线,所以我认为这是第一条“if”线。

所以当我添加以下代码时:

import java.util.*;
class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("What animal is it?");

    String animal = sc.nextLine();

    if(animal.contains("dog")){
        System.out.println("WOOF!");
    }

    if(animal.contains("cat")) {

    }

    if(animal.contains("numpty")) {

    }



  }
}

感谢您的帮助