You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在if-else语句中利用字符串数组校验输入的用户名是否合法

如何在if-else语句中利用字符串数组校验输入的用户名是否合法

嘿,我完全懂你的困扰!你现在想让输入的用户名和数组里所有的合法用户名比对,而不是只检查第一个元素对吧?不用挨个写一堆if判断,有几种简单又实用的方法可以实现这个需求,我给你详细说说:

方法一:用循环遍历数组(适合理解基础逻辑)

如果是刚学Java的话,用循环遍历数组是最直观的方式——我们逐个检查数组里的每个合法用户名,只要找到和输入匹配的,就标记为“合法”,然后跳出循环节省资源。

修改后的代码示例:

import java.util.Scanner;

public class LoginChecker {
    public static void main(String[] args) {
        String[] validUsernames = {"JohnS", "SahilT", "VectorSingh"};
        String inputUsername;
        Scanner sc = new Scanner(System.in);
        
        System.out.print("请输入用户名:");
        inputUsername = sc.nextLine();
        
        boolean isUsernameValid = false;
        // 增强for循环遍历所有合法用户名
        for(String username : validUsernames) {
            if(inputUsername.equals(username)) {
                isUsernameValid = true;
                break; // 找到匹配项就停止循环,不用继续检查了
            }
        }
        
        if(isUsernameValid) {
            System.out.println("You are welcome");
        } else {
            System.out.println("You can't access");
        }
        
        sc.close(); // 记得关闭Scanner哦
    }
}

方法二:用Arrays工具类(更简洁高效)

Java的java.util.Arrays类提供了很多方便的数组操作方法,我们可以用asList()把数组转换成List集合,然后直接用集合的contains()方法判断输入是否在合法列表里,一行代码就能完成判断,非常省事。

修改后的代码示例:

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

public class LoginChecker {
    public static void main(String[] args) {
        String[] validUsernames = {"JohnS", "SahilT", "VectorSingh"};
        String inputUsername;
        Scanner sc = new Scanner(System.in);
        
        System.out.print("请输入用户名:");
        inputUsername = sc.nextLine();
        
        // 把数组转成List,直接用contains判断是否存在匹配项
        if(Arrays.asList(validUsernames).contains(inputUsername)) {
            System.out.println("You are welcome");
        } else {
            System.out.println("You can't access");
        }
        
        sc.close();
    }
}

小提示

如果你的需求是忽略用户名的大小写(比如输入johns也能通过校验),可以把equals()换成equalsIgnoreCase(),比如:

inputUsername.equalsIgnoreCase(username)

备注:内容来源于stack exchange,提问作者Amey Kurade

火山引擎 最新活动