我需要一种方法来返回对象的类型(作为字符串或对象的类,以更简单的形式)给定一个带有值的字符串。 我可以用我想要的每种类型来解析它,但是存在与此相关的问题(例如 int 也可以解析为 long,float 可以解析为 double)。这是我的草图:
private String typeOf(String test) {
if (test == "true" || test == "false")
return "boolean";
else if (// its a number)
// figure out a way to parse all number types?
// return corresponding type
else
// can't be parsed with any boolean or number types... just a string
return "string";
}
我检查的类型有:String、long、int、short、byte、byte[]、float 和 double。 请记住,我需要 SPECIFIC 类型才能完成该程序的成败功能。如有任何帮助,我们将不胜感激。
我正在尝试创建一个命名二进制标签(规范 here ),它保存用户输入(JOptionPane - 输入对话框)给出的特定类型的数据。为了制作正确类型的标签,我需要知道给定数据的类型。 (有没有一种方法可以从用户那里获取输入,从而完全避免字符串问题?)首先使用字符串已成为我问题的主要根源。
最佳答案
启动字符串检查是不正确的。除此之外,请考虑不同的数据类型及其可能的值。
int 或 Integer 的可能值都在 long 的范围内。花车和 double 也是如此。您将需要找出哪个数据类型的范围是哪个数据类型的子集,并按该顺序进行测试。作为示例,这里是一个用于测试整数和长整型的快速片段。
private String typeOf(String suppliedTest) {
String test = suppliedTest.strip().toLower();
if (test.equals("true") || test.equals("false"))
return "boolean";
try {
int testInt = Integer.parseInt(test);
return "integer";
} catch (NumberFormatException e) {}
try {
long testLong = Long.parseLong(test);
return "long";
catch (NumberFormatException e) {}
...
}
关于java - 从字符串的值查找对象的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119402/