我让这个课变得有趣,现在我想添加一些约束和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());
}
}
感谢。
答案 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");
}
}
但是有很多流量控制选项。