【问题标题】:How can I validate instance field values?如何验证实例字段值?
【发布时间】:2012-10-18 23:00:27
【问题描述】:

如何确保这些字段在用户填写时不会留空?这是一个类文件,填写的信息会被另一个主文件调用。我想确保信息已填写,但要等到最后其他所有内容都已完成(我正在处理的其他类文件)。如果名称留空,那么我希望程序说明名称字段留空并且需要填写,然后我才能单击完成按钮。感谢您提供任何和所有帮助。

import java.util.Scanner;
public class fillInfo
{
public String name;
public String address;
public String telephone;
public void readInput()
{
    Scanner keyboard = new Scanner(System.in);
    System.out.println("What is the customers name?");
    name = keyboard.nextLine();
    System.out.println("What is the customers telephone number?");
    telephone = keyboard.nextLine();
    System.out.println("What is the customers address?");
    address = keyboard.nextLine();
}
public void writeOutput()
{
System.out.println("Sold to: "+ name);
System.out.println("Telephone: "+ telephone);
System.out.println("Address: "+ address);
}
}

【问题讨论】:

  • 你想混合控制台和 GUI 吗?
  • 一点也不。简单的程序,我正在研究。我只需要确保在程序完成和结束之前完全输入字段。

标签: java forms validation


【解决方案1】:

如果你做了类似的事情:

Scanner keyboard = new Scanner(System.in);
System.out.println("What is the customers name?");
name = keyboard.nextLine();
while(name="")//empty string (nothing) entered
{
System.out.println("Please enter a valid name");
name = keyboard.nextLine();
}

。 . .

【讨论】:

  • 但是使用适当的比较,而不是赋值?
  • 关闭,但你需要使用.equals(),而不是==(或=),你还需要检查null,意思是EOF。
  • 我试试这个,看看它是否有效。但看起来这是一旦跳过该字段,因为我需要程序让我知道在输入所有过度信息(在其他类文件上)之后有一个空字段。
  • @user1757726 检查实例值是空还是空白不是很容易吗?我不明白问题是什么。
  • @DaveNewton 我不明白“适当的比较,而不是分配”我是一个新手,需要解释一下,就像我是一个 10 岁的孩子学习一门新语言一样。谢谢。
【解决方案2】:

对于每个字段变量,您可以这样做:

while (name == null || name.trim().isEmpty()) {
   System.out.println("What is the customers name?");
   name = keyboard.nextLine();
}

更新:可以在程序结束之前检查值并调用这样的辅助方法:

if (name == null || name.trim().isEmpty()) {
   name = getInputValue("What is the customers name?");
}

使用相应的辅助方法:

private String getInputValue(String prompt) {
   System.out.println(prompt);
   Scanner keyboard = new Scanner(System.in);
   return keyboard.nextLine();
}

注意:与第一种方法相比,这在资源上的效率较低,因为每个缺失的字段变量都会创建一个新的 Scanner 实例。

【讨论】:

  • 有效,但只要不输入信息就有效。我需要编程以检查何时在程序关闭时输入了所有其他信息(其他类文件)。如果某个字段留空,程序会告诉您填写缺失的字段。
猜你喜欢
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 2021-12-11
  • 2021-07-09
  • 2020-10-22
  • 1970-01-01
相关资源
最近更新 更多