我对Java很新,但我非常热衷于学习它。我想一步一步地解决问题
我试着一块一块地做作业。
我想要求用户输入9位数的邮政编码,例如701152014,而不是像70115那样的5位数字。
我想继续询问用户,直到他们输入9位数字,如701152014
如果他们输了5个数字我想继续询问请输入9位数。
我使用NetBean。
的System.out.println(zipNew);这部分,它有点错误。它说错误。
所以我想提示用户,直到用户输入9位数的邮政编码。
我该怎么做?非常感谢你。
非常感谢你教我。我真的很想学习Java。谢谢。
package week7;
import javax.swing.*;
public class test {
public static void main(String[] args){
//Scanner scanner = new Scanner(System.in);
String zip=JOptionPane.showInputDialog(null,"Enter your zip");
String zipNew;
int ziplength = (zip.length());
if (ziplength == 9){
zipNew = zip;
}
else if (ziplength !=9)
{
String zip = JOptionPane.showInputDialog(null,"please type 9 digit zip code not 5 digit"); //----this part is wrong
}
System.out.println(zipNew); //----this part is wrong,
}
答案 0 :(得分:2)
通常情况下,我会使用JFormattedField
和/或DocumentFilter
,但请保持简单......
基本思想是,你需要循环,直到你得到你需要的东西,例如......
String zip = null;
do {
zip = JOptionPane.showInputDialog(null, "Enter your zip");
} while (zip != null && zip.length() < 9);
System.out.println("zip = " + zip);
这将循环直到用户按下[取消]或他们输入的值有9个字符。您需要注意,这可能导致zip
等于null
,您需要检查这一点。此外,没有什么能阻止用户输入非数字值...
仔细查看The while and do-while Statements了解更多详情
答案 1 :(得分:0)
首先,格式化很糟糕。不确定它是否在此处发布时发生,并且您实际上并未使用该格式,但您可能希望使其更具可读性。
您将String zip声明两次。你不能在同一个类中有两个同名的变量,所以在你的其他条件中(你不需要if ziplength!= 9,因为else保证条件为真)更改名称字符串或不要再次声明变量(例如,说zip = blahblah not String zip = blahblah in else)。
要回答您的问题,请使用do-while循环。这是一个例子:
String zip;
do {
zip = blahblah
} while (zip.length != 9)
答案 2 :(得分:0)
我的假设是:
int ziplength = (zip.length());
你根本没有得到zipNew
的长度,而是拉链的长度,而这似乎没有在任何地方声明。
我建议将此行更改为:
int ziplength = (zipNew.length());
我对java的经验很少,但仅仅从对其他语言的广泛理解来看,我相信你只是犯了一个简单的错误。
希望这有效! 欢呼声,
麦克