发布网友 发布时间: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
你写反了, 下面的代码没运行过,不过大致就这个意思了。
追问这样的话,如果是整数,进入循环但是什么事情都不发生
热心网友 时间: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的方法来判断呀。。 有没有办法?