修正了它。工作代码!我不得不将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;
}
}
答案 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
方法中的字段和方法,您有两种选择:
static
。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));
}
}