String firstname , middlename , lastname ;
firstname = fn.getText().substring(0,1);
middlename = mn.getText().substring(0,1);
lastname = ln.getText();
String shortname = shortname.concat(lastname); // error is in this line, shortname.concat
shortname = shortname.concat(" ");
shortname = shortname.concat(firstname);
shortname = shortname.concat(".");
shortname = shortname.concat("middlename");
shortname = shortname.concat(".");
shrt.setText(shortname);
没有其他行有任何错误。只是shortname
变量未初始化。
注意:简单的解决方案请。我上课了11.把这个JAVA拿出书本。
答案 0 :(得分:5)
中的右手表达式
String shortname = shortname.concat(lastname);
将在分配之前进行评估,因此当您尝试执行
时shortname.concat(lastname)
那时的 shortname
未初始化。要解决此问题,您必须先使用空字符串(""
)初始化,然后再使用它:
String shortname = "";
shortname = shortname.concat(...);
修改强>
正如@BrianRoach评论的那样,没有必要连接它,因为你只是将一个空字符串(""
)与另一个String
连接起来。只是做:
String shortname = lastname;
答案 1 :(得分:0)
使用:
String shortname = "";
shortname = shortname.concat(lastname);
答案 2 :(得分:0)
您在宣布之前尝试使用shortname
。您需要在使用它之前声明它并初始化变量。在RHS上使用shortname
意味着您甚至在LHS上声明它之前就试图使用它。首先声明并初始化它,然后使用它。
String shortname = ""; // blank string, for initializing it
shortname = shortname.concat(lastname);
正如@Brian所评论的那样,如果它是一个空白字符串的concat,你也可以直接将值赋给它。这样你就不需要2个陈述。
String shortname = lastname; // Declaration and initialization, done!
答案 3 :(得分:0)
首先启动短名称
Actulally shortname doesnt contain anything to concat with.
所以为它提供一些价值,
String shortname="";
shortname = shortname.concat(lastname);
编辑:
正如@BrianRoach在@Christians的回答中所说,我们应该将短名称初始化为String shortname=lastname;
重视连接的目的。