Java - 添加约束

时间:2013-02-10 22:08:11

标签: java if-statement constraints

我让这个课变得有趣,现在我想添加一些约束和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());

   }
}

感谢。

2 个答案:

答案 0 :(得分: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);

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

答案 1 :(得分: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");
    }
}

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