Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据用户输入测试字符串和整数数组_Java_Arrays_If Statement_User Input - Fatal编程技术网

Java 根据用户输入测试字符串和整数数组

Java 根据用户输入测试字符串和整数数组,java,arrays,if-statement,user-input,Java,Arrays,If Statement,User Input,我已经为我想在程序中使用的字符串和整数创建了数组,我想使用它们而不是 (name.equals "barry"||"matty" 比如说 我想知道如何编写if语句来对照数组中的字符串检查用户输入 import java.util.Scanner; public class Username { public static void main (String[]args) { Scanner kb = new Scanner (System.in);

我已经为我想在程序中使用的字符串和整数创建了数组,我想使用它们而不是

(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");
    }
}
import java.util.Scanner;
公共类用户名
{
公共静态void main(字符串[]args)
{
扫描仪kb=新扫描仪(System.in);
//包含用户名的数组
String[]name={“barry”、“matty”、“olly”、“joey”};
System.out.println(“输入您的姓名”);
name=kb.nextLine();
如果(name.equals(“巴里”)| name.equals(“马蒂”)| name.equals(“奥利”)| name.equals(“乔伊”))
System.out.println(“您已确认可以使用电梯”);
扫描器f=新扫描器(System.in);
内部楼层;
int[]地板={0,1,2,3,4,5,6,7};
System.out.println(“你想去哪一层”);
地板=f.nextInt();
如果(楼层>7)
System.out.println(“无效条目”);

否则,如果(floor您可以通过数组进行循环:

String name = kb.nextLine();
if(contains(name)) {
    System.out.println("you are verified you may use the lift");
}


public boolean contains(String name) {
    String [] names = {"barry", "matty", "olly","joey"}; 
    for (int i = 0; i < names.length; i++) {
        if(names[i].equals(name)) {
            System.out.println("you are verified you may use the lift");
        }
    }
我想您只是在寻找
列表。包含
-但这当然需要
列表而不是数组。这里有两个明显的选项

首先,您可以使用
列表
从以下内容开始:

List<String> names = new ArrayList<>();
names.add("barry");
names.add("matty");
names.add("olly");
names.add("joey");
...
if (names.contains(name))
{
    ...
}
作为第三个选项,如果将make your names array排序(手动或调用
Arrays.sort
),您可以使用来尝试查找用户输入的名称:

String[] names = {"barry", "matty", "olly", "joey"}; 
Arrays.sort(names);
...
if (Arrays.binarySearch(names, name) >= 0)
{
    ...
}

数组是非常低级的结构,不提供任何方法。您最好使用集合,集合具有
contains()
方法:

Set<String> names = new HashSet<>(Arrays.asList(new String[] {"barry", "matty", "olly","joey"}));

if (names.contains(name)) {
    ...
}
Set name=newhashset(Arrays.asList(新字符串[]{“barry”、“matty”、“olly”、“joey”}));
if(name.contains(name)){
...
}
由于您似乎不关心名称的顺序,而只想测试集合是否包含名称,因此哈希集是最佳的数据结构:
HashSet.contains()
以恒定时间(O(1))运行,而
List.contains()
,例如,是O(n)

阅读。

使用for循环

get input
for int i = 0, i < array size i++
if input.equals(array[i]) then do stuff
获取输入
对于int i=0,i<数组大小i++
如果input.equals(数组[i]),则执行以下操作

如果切换到
arraylist
,则可以使用arraylist和List而不是字符串数组执行
If(array.contains(input))

List<String>names = new ArrayList<String>(names); 
name = kb.nextLine();
if(names.indexOf(name)>-1)System.out.println("you are verified you may use the lift");
工作

get input
for int i = 0, i < array size i++
if input.equals(array[i]) then do stuff
List<String>names = new ArrayList<String>(names); 
name = kb.nextLine();
if(names.indexOf(name)>-1)System.out.println("you are verified you may use the lift");
if(names.contains(name))System.out.println("you are verified you may use the lift");