如果数组中的输入返回true,则返回false

时间:2015-02-25 16:32:06

标签: java

修正了它。工作代码!我不得不将fruit数组移动到方法中并从main调用它。

import java.util.Scanner;

public class StringArrayTest {

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String input;       

    System.out.println("Enter a fruit: ");
    input = sc.nextLine();
    System.out.println("Is \"" + input + "\" in the array? " + isIn(input));

    sc.close();
}

public static boolean isIn(String input) {

    String[] fruit = new String[6];

    fruit[0] = "grape";
    fruit[1] = "banana";
    fruit[2] = "apple";
    fruit[3] = "mango";
    fruit[4] = "watermelon";
    fruit[5] = "orange";

    for(int i = 0; i < fruit.length; i++) {
        if (input.equals(fruit[i])) {
            return true;
        }
    }
    return false;
}

}

3 个答案:

答案 0 :(得分:4)

如果数组包含输入,则以下代码将返回true,如果不包含,则返回false。 此代码的camickr积分:

Arrays.asList(yourArray).contains(yourString)

答案 1 :(得分:3)

return false必须在for循环之外。如果它在else部分中,则for循环将在第一次迭代时结束。

以下是代码的外观:

public boolean isIn(String input) {
    for(int i = 0; i < fruit.length; i++) {
        if (input.equals(fruit[i])) {
            return true;
        }
    }
    return false;
}

此外,您无法在另一个方法中声明方法。将方法isIn移到main之外。

代码中的其他问题:

  • String[] fruit目前已在main方法中声明,初始化和填充。它应该至少在外面声明为类的一个字段,以便通过其他方法访问。
  • 您未在任何地方使用isIn
  • 要使用main方法中的字段和方法,您有两种选择:
    1. 将字段和方法声明为static
    2. main方法中创建类的新实例,并使用此实例中的字段和方法。

代码可能如下所示:

import java.util.Scanner;

public class StringArrayTest {
    static String[] fruit = new String[6];

    public static void main(String[] args) {
        fruit[0] = "grape";
        fruit[1] = "banana";
        fruit[2] = "apple";
        fruit[3] = "mango";
        fruit[4] = "watermelon";
        fruit[5] = "orange";

        Scanner sc = new Scanner(System.in);
        String input;
        input = sc.nextLine();

        if (isIn(input)) {
            //do something...
        } else {
            //do something else...
        }
    }

    public static boolean isIn(String input) {
        for(int i = 0; i < fruit.length; i++) {
            if (input.equals(fruit[i])) {
                return true;
            }
        }
        return false;
    }
}

答案 2 :(得分:0)

总结其他人的建议。

import java.util.Arrays;
import java.util.Scanner;

public class StringArrayTest {

   public static void main(String[] args) {

   String[] fruit = new String [] {"grape", "banana", "apple", "mango", "watermelon", "orange"};

   Scanner sc = new Scanner(System.in);
   String input = sc.nextLine();

   System.out.println(Arrays.asList(fruit).contains(input));
 }
}