2017-02-27 68 views
0

我不能把这个值作为Integer,我不能提交什么类型(我知道是String)但我需要转换为数字,Interger.parse()不起作用我得到Exception什么是java中的类型变量 - (数字)d

String str = "-10d"; 
Interger.parse(str); //I get Exception 
+1

但什么这是一个数字:-10b? –

+0

你是否打算“b”表示这是一个二进制数? –

+0

对不起,我改变我的意思是d。 –

回答

1

您可以使用此转换您Stringint

double b = Double.parseDouble("-10d"); 

String str = "-10d"; 
int i = Double.valueOf(str).intValue(); 

希望这有助于!

1

String str = "-10b"(提及的问题)或“-10d”(标题中提到)?

如果你的意思是 - (数字)d,那么它是双倍的。
尝试,而不是使用Integer.parseInt

1

在这里,你得到double值:

String str = "-10d"; 
Double d = Double.parseDouble(str); 
System.out.println(d); 

而获得整数值:

int intValue = d.intValue(); 

其他的解决方案,它改变输入stringparse方法是(我不推荐他们):

int x = Integer.valueOf(str.substring(0, str.length() - 1)); 
int y = Integer.valueOf(str.replace('d', ' ').trim()); 
+1

@Tom感谢提示,没有想到这种变化的结果 –

1

你得到Excep重刑,因为它是不正确的,没有Interger.parse(str);我想你想:

Integer.parseInt(str); 

但是你的字符串有d和双d工作不整等等,而不是使用这样的:

String str = "-10d"; 
Double.parseDouble(str);