0

我制作这个类是为了好玩,现在我想添加一些约束和 if 语句。但不知道如何。

问题 1)我不知道如何在 System.out.print 输出上执行 if 语句。比如说,如果用户输入超过 50 个字符,那么他们将被阻止。

我知道如何在 MySQL 中做到这一点,但在 Java 中却不知道,因为我对 ATM 非常缺乏经验。:|

问题2)如果是nextLine,我也想限制自己输入数字,如果是nextInt,我也想限制自己输入文本。

谁能帮我解决这两个问题?

import java.util.Scanner;

class AppForm {
   public static void main(String args[]){

      Scanner sc = new Scanner(System.in);

      System.out.print("Enter your name... ");
      System.out.println("Your name is " + sc.nextLine());

      System.out.print("Enter your age... ");
      System.out.println("Your age is " + sc.nextInt());

   }
}

谢谢。

4

2 回答 2

2

nextLine()您应该首先通过将结果存储在变量中来分解输入和输出代码:

System.out.print("Enter your name... ");
String line = sc.nextLine();
System.out.println("Your name is " + line);

然后,您可以对line字符串变量执行所需的任何检查。交互式程序的典型范例是打印出错误消息并要求用户在输入无效的情况下重复输入:

System.out.print("Enter your name... ");

String line = sc.nextLine();

while (line.length() > 50) {
    System.out.println("Error: you entered more than 50 characters");

    // Ask the user for their name again...
    System.out.print("Enter your name... ");
    line = sc.nextLine();
}

System.out.println("Your name is " + line);

不幸的是,没有办法阻止用户输入无效字符 - 您只能在用户完成输入并且您的程序接收到输入的行之后检查该行的内容。

于 2013-02-10T22:14:15.943 回答
0

我建议看一下 while 循环。一些可能性:

String name;
do {
    System.out.print("Enter your name... ");
    String line = sc.nextLine();
while (StringUtils.isEmpty(name) || name.length() > 50)

或:字符串名称;

while (StringUtils.isEmpty(name)) {
    System.out.print("Enter your name... ");
    name = sc.nextLine();
    if (name.length >= 50) {
        System.out.println("Max name length is 50");
    }
}

但是有很多流量控制选项。

于 2013-02-10T22:19:58.157 回答