java如何循环判断输入的时候为整数

发布网友 发布时间:2022-04-26 00:21

我来回答

5个回答

热心网友 时间:2023-10-24 05:51

import java.util.Scanner;
public class Jnm3 {
public static void main(String[] args)  {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数字:");
String s;
while((s = sc.nextLine()).matches("\\D*")){
System.out.println("你输入的不是数字");
}
System.out.println("你输入的是数字:" + s);
sc.close();
}
}

热心网友 时间:2023-10-24 05:51

你写反了, 下面的代码没运行过,不过大致就这个意思了。

      System.out.print("请输入整数:");
      while (input.hasNext()) {
         if(!input.hasNextInt())
         {
           System.out.print("请重新输入整数:");
         }
      }

追问这样的话,如果是整数,进入循环但是什么事情都不发生

热心网友 时间:2023-10-24 05:52

实验了好多遍,终于懂楼主的意思了,
package com.yr.util;

import java.util.Scanner;

public class A {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入整数:a");
String a;
while (true) {
a = input.next();
try {
Integer.parseInt(a);
System.out.println("你输入的是整数,循环结束");
break;
} catch (Exception e) {
System.out.println("你输入的不是整数,请再次输入");
}
}

}
}

热心网友 时间:2023-10-24 05:53

亲,搞个正则表达式来判断吧,代码简约上档次

热心网友 时间:2023-10-24 05:53

方法太多了,正常的我们不用,我们一般用*的方法,如下。

//流氓的
try
{
Integer.parseInt(input);
//是整数
}
catch(NumberFormatException nfe)
{
//不是整数
}

//自虐的
for (char c : input.toCharArray())
{
if (!Character.isDigit(c))

{
//不是整数
}else
{
//是整数

}
}

//装*的
if(input.matches("^\\d+$")){
//是整数

}
else
{
//不是整数

}追问我需要用hasNextInt的方法来判断呀。。 有没有办法?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com