我希望国家/地区代码是用户输入的整数。我希望当用户输入不是整数的代码时显示错误消息。我怎样才能做到这一点?该程序是要求用户输入国家名称和国家代码。在哪个用户将输入国家代码。但是如果用户输入了一个字符,我想要显示一条消息,说明输入无效。
System.out.println("Enter country name:");
countryName = in.nextLine();
System.out.println("Enter country code:");
int codeNumber = in.nextInt();
in.nextLine();
答案 0 :(得分:1)
如果输入不是int
值,那么Scanner
的{{1}}(查看here for API)方法会抛出InputMismatchException,您可以nextInt()
然后再请用户重新输入“国家/地区代码”,如下所示:
catch
答案 1 :(得分:0)
这样做的一个简单方法是,使用名称读取数字行,然后检查Regex(正则表达式)以查看是否仅包含数字,匹配方法为字符串{{1如果为false,则返回布尔值,然后它不是数字,您可以打印错误消息。
codeNumber.matches("\\d+")
答案 2 :(得分:0)
您可以改为 Scanner in = new Scanner(System.in);
boolean isNumeric = false;//This will be set to true when numeric val entered
while(!isNumeric)
try {
System.out.println("Enter country code:");
int codeNumber = in.nextInt();
in.nextLine();
isNumeric = true;//numeric value entered, so break the while loop
System.out.println("codeNumber ::"+codeNumber);
} catch(InputMismatchException ime) {
//Display Error message
System.out.println("Invalid character found,
Please enter numeric values only !!");
in.nextLine();//Advance the scanner
}
,然后致电hasNextInt
nextInt
答案 3 :(得分:0)
您可以这样做,首先将输入作为字符串,然后尝试将字符串转换为整数,然后输出错误消息,如果它可以&#t; t:
<section class="slice">
<div class="wp-section">
<div class="container">
<div class="row pics_in_a_row">
@{
int i = 0;
foreach (dbphoto.Models.Image s in Model.images.OrderByDescending(x => x.idimage))
{
if (i % 5 == 0 && i != 0)
{
<br />
}
i++;
if (1 == 1)
{
<div class="flxbox" style="flex: calc(1024/713)">
<a href="@s.HighResolution" data-fancybox="gallery" data-caption="xyz, Stockholm">
<img src="@s.LowResolution" class="img-fluid rounded flximg" />
</a>
</div>
}
}
}
</div>
</div>
</div>
</section>
答案 4 :(得分:0)
如果要创建自己的自定义异常类,请使用regex检查输入字符串是否为整数。
private final String regex = "[0-9]";
然后,检查输入是否遵循正则表达式模式。
if (codeNumber.matches(regex)) {
// do stuff.
} else {
throw new InputMismatchException(codeNumber);
}
如果不创建自定义异常处理程序,则可以在InputMismatchException中使用build。