Java 数据类型识别
我想创建一个Java程序,其中 用户将输入一些内容,输出将显示输入的数据类型。。? 例如:Java 数据类型识别,java,types,Java,Types,我想创建一个Java程序,其中 用户将输入一些内容,输出将显示输入的数据类型。。? 例如: Input: 25 Output: integer Input: ABC Output: string Input: 12.7 Output: float/double. 请帮助我,因为我对如何解决这个问题一无所知一个简单的方法可以这样做;从一些输入字符串开始 如果X可以解析为整数-->则它是一个整数/整数 那你试试看 然后漂浮 然后加倍 如果什么都不起作用,你可能有一根绳子 (对于“解析”,我指的是使
Input: 25
Output: integer
Input: ABC
Output: string
Input: 12.7
Output: float/double.
请帮助我,因为我对如何解决这个问题一无所知一个简单的方法可以这样做;从一些输入字符串开始
因此,第一步是:澄清您的需求!了解您必须支持的潜在输入格式;然后思考它们的“映射”;和一个可能的检查来识别该类型。您可以获取一个字符串,并尝试将其作为其他类型进行解析:
Scanner s = new Scanner(System.in);//allows user input
input = s.nextLine();//reads user input
try{//java will try to execute the code but will go to the catch block if there's an exception.
int inputInt = Integer.parseInt(input);//try to convert input to int
catch(Exception e){
e.printStackTrace();//this tell you exactly what went wrong. If you get here, then the input isn't an integer.
}
//same with double
这应该适用于您的目的:
import java.util.Scanner;
public class DataType
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
if(in.hasNextByte(2))
System.out.println("Byte");
else if(in.hasNextInt())
System.out.println("Integer");
else if(in.hasNextFloat())
System.out.println("Float");
else if(in.hasNextBoolean())
System.out.println("Boolean");
else if(in.hasNext())
System.out.println("String");
}
}
注意,if…else
语句的顺序在这里非常重要,因为与模式相关的以下集合关系:
在
Scanner
类中有很多hasNext..()
方法,例如biginger
,short
,等等。您可以参考类文档以了解更多详细信息。查找Strings中的解析数据。可能的副本会精确显示如何执行此操作。现在给您一个提示:永远不要建议新手使用空的catch块。这是非常糟糕的做法@幽灵猫是的,我在想如何确切地解释应该去那里