【发布时间】:2010-11-08 07:16:14
【问题描述】:
我想要结果 no:5 但我得到 no:23
public class Assignment3
{
public static void main(String args[])
{
String str1 = "2";
String str2 = "3";
System.out.println("Result:" + (str1+str2) );
}
}
【问题讨论】:
我想要结果 no:5 但我得到 no:23
public class Assignment3
{
public static void main(String args[])
{
String str1 = "2";
String str2 = "3";
System.out.println("Result:" + (str1+str2) );
}
}
【问题讨论】:
如果你想对整数进行算术运算,你需要告诉你的代码来解析这些值。目前它只是使用字符串连接运算符,因为两个操作数(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”而不是号码。
【讨论】:
i 一起工作 - 但如果没有确切地看到你做了什么,很难说你做错了什么。
str1 和 str2 是 String 对象。 + 操作是为 String 对象定义的,其工作方式类似于这些字符串的串联:
"one" + "two" -> "onetwo"
"1" + "2" -> "12"
如果您需要算术 + 运算,那么您需要数字类型(int、float、...)。在您的情况下,您必须将字符串 解析 为数值,例如:
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)) );
}
}
【讨论】:
您需要使用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)) );
}
}
【讨论】:
您将数字字符串视为文本字符串,但实际上您需要将字符串解析为整数。
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)) );
}
}
【讨论】: