我已经为我想在我的程序中使用的字符串和整数创建了数组,我想使用它们而不是使用
(name.equals "barry"||"matty"
例如。
我想知道如何编写 if 语句来根据数组中的字符串检查用户输入。
import java.util.Scanner;
public class Username
{
public static void main (String[]args)
{
Scanner kb = new Scanner (System.in);
// array containing usernames
String [] name = {"barry", "matty", "olly","joey"};
System.out.println("Enter your name");
name = kb.nextLine();
if (name.equals("barry ")|| name.equals("matty" ) || name.equals("olly")||name.equals("joey"))
System.out.println("you are verified you may use the lift");
Scanner f = new Scanner(System.in);
int floor;
int [] floor = {0,1,2,3,4,5,6,7};
System.out.println("What floor do you want to go to ");
floor = f.nextInt();
if (floor >7)
System.out.println("Invalid entry");
else if (floor <= 7)
System.out.println("Entry valid");
}
}
最佳答案
我认为您只是在寻找List.contains
- 但这需要 List
当然不是数组。这里有两个明显的选择。
首先,您可以使用 List<String>
开始于:
List<String> names = new ArrayList<>();
names.add("barry");
names.add("matty");
names.add("olly");
names.add("joey");
...
if (names.contains(name))
{
...
}
或者,您可以使用 Arrays.asList
创建 View :
String[] names = {"barry", "matty", "olly", "joey"};
List<String> namesList = Arrays.asList(names);
...
if (namesList.contains(name))
{
}
作为第三种选择,如果你让你的名字数组排序(手动或调用 Arrays.sort
),你可以使用 Arrays.binarySearch
尝试查找用户输入的名称:
String[] names = {"barry", "matty", "olly", "joey"};
Arrays.sort(names);
...
if (Arrays.binarySearch(names, name) >= 0)
{
...
}
关于java - 根据用户输入测试字符串和整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22731887/