【问题标题】:Best practice for getting user input from multiple methods in Java?从 Java 中的多种方法获取用户输入的最佳实践?
【发布时间】:2020-04-07 22:27:28
【问题描述】:

我有一个相对基本的程序,其中有几种方法从用户那里获取输入(使用 Scanner 对象)。我正在寻找这些技术中的哪些(如果有的话)被认为是标准或最佳实践。这里我将使用一种方法作为示例。

  1. 在每个方法中分别创建一个新的扫描器对象:
// Get date from user
public static LocalDate getDateFromUser(String date_request_label){

    Scanner inputScan = new Scanner (System.in);

    System.out.print(date_request_label + " (YYYYMMDD): ");
    String input_string = inputScan.nextLine();

    // Split input into year/month/day
    int year  = Integer.parseInt(input_string.substring(0,4));
    int month = Integer.parseInt(input_string.substring(4,6));
    int day   = Integer.parseInt(input_string.substring(6,8));

    return LocalDate.of(year,month,day);
}
  1. 在 main 中创建单个扫描仪对象并在每个方法中调用它:
// Get date from user
public static LocalDate getDateFromUser(Scanner inputScan, String date_request_label){
    System.out.print(date_request_label + " (YYYYMMDD): ");
    String input_string = inputScan.nextLine();

    // Split input into year/month/day
    int year  = Integer.parseInt(input_string.substring(0,4));
    int month = Integer.parseInt(input_string.substring(4,6));
    int day   = Integer.parseInt(input_string.substring(6,8));

    return LocalDate.of(year,month,day);
}

谢谢!

【问题讨论】:

  • 我也同意创建和重复使用Scanner 几乎总是首选。

标签: java methods java.util.scanner user-input


【解决方案1】:

恕我直言,重用对象是可取的,只要它不会降低代码的可读性。

所以我会选择第二个选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多