java怎么判断scanner输入的数据类型,
是int还是double
这种功能有多种实现方法。最简单的就是使用try-catch结构,通过捕捉各类异常,从而判断用户输入的类型。这里给出一个代码实现
package help.Scanner;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("请输入测试内容");
try {
in.nextInt();
System.out.println("Int类型");
} catch (InputMismatchException e) {
System.out.println("Double类型");
}
}
}
在这里。我们假设用户只会输入int或double类型的值。当然实际应用的时候绝大数用户是不会那么做的。这里给出的代码迎合了一种假想的理想环境。即用户永远只会输入int或double类型的值。这是最简单的一种情况。来看运行结果:
package help.Scanner;
import java.util.Date;
import java.util.Scanner;
public class Test
{
public static void main(String[] args) throws InterruptedException {
Scanner in = new Scanner(System.in);
System.out.println("请输入测试内容");
String userIn = in.nextLine();
Date start = new Date();
for (int i = 0;i < userIn.length();i++)
{
if (userIn.charAt(i) == '.')
{
System.out.println("Double类型");
break;
}
}
System.out.println("Int类型");
Date end = new Date();
System.out.println("花费时间" + (end.getTime() - start.getTime()) + "毫秒");
}
}
来看运行结果
package help.Scanner;
import java.util.Date;
import java.util.Scanner;
public class Test
{
public static void main(String[] args) throws InterruptedException {
Scanner in = new Scanner(System.in);
System.out.println("请输入测试内容");
String userIn = in.nextLine();
Date start = new Date();
double userNI = Double.parseDouble(userIn);
if (String.valueOf((int)userNI).equals(userIn)) System.out.println("Int类型");
else System.out.println("Double类型");
Date end = new Date();
System.out.println("花费时间" + (end.getTime() - start.getTime()) + "毫秒");
}
}
接下来是这个算法的执行时间
输入的类型,你自己要先清楚,再定义对应的类型方法去接收。
//输入整数
scanner.nextInt();
//输入字符串
scanner.next();
不知道什么类型的话,就直接用字符串类型来输入scanner.next();只要不参与四则运算就没关系,如果需要进行四则运算,再转为对应的类型即可。
scanner.nextInt();
scanner.nextDouble();
用字符串形式输入,自己写判断的代码
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!