- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个相同原始类型的字符串数组(不知道是什么)。我需要将其转换为相应的类型。如果我传递一个字符串并获取数据的原始类型(如果该字符串中有的话),有什么办法吗?考虑字符串应该具有原始类型或者它被视为字符串
对于例如
"5.2" - double
"5" - int (most related)
"s" - char
因此,如果它是 double 的,我可以使用 Double.parseDouble
进行解析
最佳答案
不,那是不可能的。例如这个输入:
5
我们唯一知道的是,它可能不是 boolean 值。
你当然也可以尝试像这样解析你的字符串:
public static void main(String[] args) {
checkType("5.2");
checkType("5");
checkType("s");
}
protected static void checkType(String input) {
System.out.println(input);
try {
byte result = Byte.parseByte(input);
System.out.println("could be interpreted as byte "+result);
} catch (NumberFormatException e) {
System.out.println("not an byte");
}
try {
short result = Short.parseShort(input);
System.out.println("could be interpreted as short "+result);
} catch (NumberFormatException e) {
System.out.println("not an short");
}
try {
int result = Integer.parseInt(input);
System.out.println("could be interpreted as int "+result);
} catch (NumberFormatException e) {
System.out.println("not an int");
}
try {
long result = Long.parseLong(input);
System.out.println("could be interpreted as long "+result);
} catch (NumberFormatException e) {
System.out.println("not an long");
}
try {
float result = Float.parseFloat(input);
System.out.println("could be interpreted as float "+result);
} catch (NumberFormatException e) {
System.out.println("not an float");
}
try {
double result = Double.parseDouble(input);
System.out.println("could be interpreted as double "+result);
} catch (NumberFormatException e) {
System.out.println("not an double");
}
try {
boolean result = Boolean.parseBoolean(input);
System.out.println("could be interpreted as boolean "+result);
} catch (NumberFormatException e) {
System.out.println("not a boolean");
}
if (input.length() == 1) {
System.out.println("could be interpreted as character "+input);
} else {
System.out.println("not a character");
}
System.out.println();
}
对于给定的例子,它输出:
5.2
not an byte
not an short
not an int
not an long
could be interpreted as float 5.2
could be interpreted as double 5.2
could be interpreted as boolean false
not a character
5
could be interpreted as byte 5
could be interpreted as short 5
could be interpreted as int 5
could be interpreted as long 5
could be interpreted as float 5.0
could be interpreted as double 5.0
could be interpreted as boolean false
could be interpreted as character 5
s
not an byte
not an short
not an int
not an long
not an float
not an double
could be interpreted as boolean false
could be interpreted as character s
关于Java : Is there a way to know the type of primitive data in a string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35651567/
这只是一个练习,但我无法弄清楚其中的歧义: private static void flipFlop(String str, int i, Integer iRef) { System.out.pri
我假设 jls 中描述的转换是根据优先级排序的。首先具有更高的优先级。 jls 因此我解决了 Boxing 比 Unboxing 具有更高的优先级。我决定检验这个假设。 研究以下代码: public
我的问题看起来很简单。 int i =99999; long square = i*i; System.out.println(square); //prints 1409865409 - inc
我有一种情况,我必须更改 java 常量。 我有下面的代码工作 import java.lang.reflect.Field; import java.lang.reflect.Modifier; p
Section 4.2 of the Java Language Specification指出,“原始值不与其他原始值共享状态”。这到底是什么意思? 最佳答案 这意味着原始类型的每个值都在内存中占据
我想将对原始类型的引用传递给一个方法,这可能会改变它。 考虑以下示例: public class Main { Integer x = new Integer(42); Integer
为了学习依赖类型,我正在用 Idris 重写我的旧 Haskell 游戏。目前游戏“引擎”使用内置的整数类型,例如 Word8 .我想证明一些涉及这些数字的数字属性的引理(例如,双重否定是身份)。但是
我从react-primitives自述文件https://github.com/lelandrichardson/react-primitives#readme中读取内容,指出我们需要安装目标平台库
让我们以jackson序列化器为例,假设我们有一个这样的类: public class Car { private String brand; private Integer weig
出于某种原因,我想做这样的事情: template void write(const Data& data) { std::fstream out {...}; out.write(r
由于 C# 中的 struct 由其成员的位组成,因此您不能拥有包含任何 T 字段的值类型 T: // Struct member 'T.m_field' of type 'T' causes a c
这个问题在这里已经有了答案: Why does int i = 1024 * 1024 * 1024 * 1024 compile without error? (5 个回答) 关闭8年前。 在Jav
在好几个地方我都看到了类似这样的声明: “Scala 编译器在编译代码中尽可能使用 Java 数组、基本类型和 native 算术”(《Scala 编程》一书)。但实际上我没有看到这一点,例如在下面的
术语“同步原语”到底是什么意思?例如:互斥锁,关键部分,等待计时器,事件,监视器,条件变量,信号量。它们都是同步原语吗?我还没有列出其他同步原语吗?这些是有效的问题吗? 最佳答案 同步原语是平台(例如
我正在通读 Rubinius source code ,我不断遇到类似这样的方法: def self.do_something Rubinius.primitive :vm_do_somethin
我正在用解释器编写类似 Scheme 的程序。类似 Scheme 的解释器应该可以很好地与任何实现 IEnumerable 的对象一起工作,这似乎很自然。 解释器不允许突变 - 没有暴露有副作用的函数
ASP.NET Web Api 函数返回一个简单的 JSON 字符串。 当我从 angularjs 调用这个函数时,我得到一个带引号的字符串,而不是一个简单的字符串: return $http.pos
我正在将一个项目(不是我最初的项目)从 python2 转换为 python3。 在我的一个脚本中: sk = (key.Sub[0]/["point", ["_CM"]]).value 这适用于 p
我在一周前运行良好的应用程序中实现了指纹身份验证。没有更改代码,我现在收到以下错误: FATAL EXCEPTION: main Caused by: java.lang.IllegalSta
我在从 URL 接收 JSON 数组时遇到问题。我已经验证我的链接没问题,并且返回了正确的 JSON 数组,它甚至显示在错误消息中。我不确定这是什么意思。 错误: 04-17 21:34:04.435
我是一名优秀的程序员,十分优秀!