当使用交互面板运行我的代码时,我在结果之前得到一个空值。例如,当我输入: 第一个词 - 谷歌 第二个字 - 铬
结果应该是 - gcohorgolme 但它是 - nullgcohorgolme
任何想法为什么? 这是我的代码:
public class Collate{
String result;
String x;
String y;
public String collate(String x, String y){
for(int i = 0; i < x.length(); i++)
{
result += x.charAt(i);
result += y.charAt(i);
}
return (result);
}
}
非常感谢!
答案 0 :(得分:7)
确保初始化result
:
public String collate(String x, String y){
result = ""; // <-- here
for(int i = 0; i < x.length(); i++)
{
result += x.charAt(i);
result += y.charAt(i);
}
return (result);
}
答案 1 :(得分:3)
您尚未初始化result
值。
请记住,您应该始终初始化变量。发生null
是因为您的结果已初始化,然后转换为字符串null
。
答案 2 :(得分:2)
首先将结果初始化为空字符串。
result = "";
答案 3 :(得分:2)
将result
字符串初始化为String result = "";
此步骤应始终作为预防措施,否则您最终可能会得到null
输出。
答案 4 :(得分:1)
result += x.charAt(i)
等于
result = result + x.charAt(i)
但result
在第一次循环时为空。
答案 5 :(得分:1)
您始终可以使用StringBuffer。
public static String collate(String x, String y){
StringBuffer result = new StringBuffer();
for(int i = 0; i < x.length(); i++)
{
result.append(x.charAt(i)).append(y.charAt(i));
}
return (result.toString());
}
答案 6 :(得分:0)
4.3.1 Objects(来自Java语言规范):
字符串连接运算符
的串联+
,当给定String时 操作数和引用,将通过调用将引用转换为String 引用对象的toString方法(如果是引用,则使用“null” 或者toString的结果是一个空引用),然后会产生一个新的 created String是两个字符串
这里result
字符串初始化为空引用。因此,要获得所需的结果,您需要将result
初始化为:
String result="";