我想要的结果NO:5,但我没有得到任何:23如何将两个字符串转换为整数,使数学正确?
public class Assignment3
{
public static void main(String args[])
{
String str1 = "2";
String str2 = "3";
System.out.println("Result:" + (str1+str2));
}
}
我想要的结果NO:5,但我没有得到任何:23如何将两个字符串转换为整数,使数学正确?
public class Assignment3
{
public static void main(String args[])
{
String str1 = "2";
String str2 = "3";
System.out.println("Result:" + (str1+str2));
}
}
您需要使用parseInt()
。在Java中使用“+”运算符连接两个字符串以及添加两个数字。所以你必须将字符串转换为一个整数才能使用“+”运算符添加它们。
编辑:
还有parseFloat()
和parseDouble()
如果您正在使用的十进制数字
这个怎么样的工作?
class Assignment3
{
public static void main(String args[])
{
String str1 = "2";
String str2 = "3";
System.out.println("Result:" + (Integer.parseInt(str1)+Integer.parseInt(str2)));
}
}
非常uniq的答案感谢.... – arya 2010-11-08 07:46:31
如果你想算术在整数上完成,你需要告诉你的代码来解析这些值。目前它只是使用字符串连接运算符,因为两个操作数(str1
和str2
)都是字符串表达式。
试试这个:
public class Assignment3
{
public static void main(String args[])
{
String str1 = "2";
String str2 = "3";
int num1 = Integer.parseInt(str1);
int num2 = Integer.parseInt(str2);
System.out.println("Result:" + (num1 + num2));
}
}
注意,当你使用“真实”数据(而不是硬编码值,这肯定会在这里有效),Integer.parseInt
将抛出NumberFormatException
如果你给它的东西像“x”而不是数字。
str1
和str2
是String
对象。该+
操作为String
对象的定义,就像这些字符串的串联:
"one" + "two" -> "onetwo"
"1" + "2" -> "12"
如果你需要一个算术+
操作,那么你需要的数值类型(整数,浮点,...)。在你的情况下,你必须解析琴弦数值,如:
String str1 = "2";
int int1 = Integer.parseInt(str1); // int1 is now 2
public class Assignment3
{
public static void main(String args[])
{
String str1 = "2";
String str2 = "3";
// `+` operation on Strings
System.out.println("Concatenation:" + (str1+str2));
// `+` operation on integers
System.out.println("Addition:" + (Integer.parseInt(str1)+Integer.parseInt(str2)));
}
}
你对待数字的字符串作为文本字符串,但实际上你需要解析Integer的字符串。
public class Assignment3
{
public static void main(String args[])
{
String str1 = "2";
String str2 = "3";
System.out.println("Result:" + (Integer.parseInt(str1)+Integer.parseInt(str2)));
}
}
相关:http://stackoverflow.com/questions/5585779/how-to-convert-string-to-int-in-java – 2013-01-05 19:51:08