gpt4 book ai didi

java - 使用扫描仪扫描txt文件

转载 作者:行者123 更新时间:2023-12-01 11:08:31 25 4
gpt4 key购买 nike

  1. 我应该创建一个包含一些名称和密码的文本文件。例如。彼得1212 约翰福音 1234 玛丽0000这些就是所谓的名称和密码。

  2. 编写一个 java 程序,提示用户输入文件路径、名称和密码并检查其是否有效。

  3. 如果姓名和密码正确,则打印“登录成功”,如果失败“登录失败”并且如果密码包含非数字字符,则“密码包含非数字字符”。这是我到目前为止所拥有的;

    import java.util.*;
    import java.io.*;
    public class PINCheck {
    public static void main(String[]args) {

    Scanner s = new Scanner(System.in);
    System.out.print("Enter file path: ");
    String filepath = s.nextLine();

    File passwordFile = new File(filepath);

    System.out.print("Enter name: ");
    String name = s.nextLine();

    System.out.print("Enter password: ");
    String password = s.nextLine();

    if (password.matches(".*[a-zA-Z]+.*")) {
    System.out.println("You have entered a non-numerical PIN!");
    } else { try {
    Scanner sc = new Scanner(passwordFile);
    if (sc.hasNext(name) && sc.hasNext(password)) {
    System.out.println("You have logged in successfully.");
    }else {
    System.out.println("Login Failed.");
    }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    }
    }
    }
    }
  4. 我能够编译代码并运行它,但即使我输入正确的名称和密码,我仍然登录不成功。谁能告诉我我是否错误地使用了 hasNext ? (我在没有 ==true 的情况下尝试过,它也没有按预期运行。)

最佳答案

Scanner#hasNext(String pattern)

此处字符串参数,pattern - 指定要扫描的模式的字符串,它与值不匹配。

您需要迭代文件内容,将用户名和密码与内容匹配。

Path path = Paths.get(filepath);
try(Stream<String> lines = Files.lines(path)){
Optional<String> hasUser = lines.filter(s -> s.split(" ")[0].equals(name) && s.split(" ")[1].equals(passowrd)).findFirst();
if(hasUser.isPresent()){
System.out.println("You have logged in successfully.");
}else {
System.out.println("Login Failed.");
}
}

关于java - 使用扫描仪扫描txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32654795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com