我正在尝试用空字符串“”替换字符串中的“,”。 我相信以下代码是正确的,但是当我使用Eclipse运行它时。它不起作用。我的代码有什么问题,我该如何纠正呢
String fullName = "lastname, firstname", lastName, firstName;
String[] parts = fullName.split(" ");
String firstPart = parts[0];
String secondPart = parts[1];
if (firstPart.contains(",")) {
firstPart.replace(",", "");
firstPart.trim();
secondPart.trim();
lastName = firstPart;
firstName = secondPart; }
答案 0 :(得分:6)
Java String
是不可变的,因此没有函数改变String
实例,只需构建一个新实例:
string = string.replace(",","");
这适用于每个应该改变示例中String
本身内容的方法。
来自Javadoc:
字符串是不变的;它们的值在创建后无法更改。
答案 1 :(得分:4)
将您的代码更改为
firstPart = firstPart.replace(",","")
您尚未指定值
的原因答案 2 :(得分:0)
我会这样做 -
public static void main(String[] args) {
String[] names = new String[] { "Frisch, Elliott",
"Elliott Frisch" };
for (String fullName : names) {
String last = "";
String first = "";
int p = fullName.indexOf(',');
if (p > -1) {
last = fullName.substring(0, p).trim();
first = fullName.substring(p + 1,
fullName.length()).trim();
} else {
p = fullName.indexOf(' ');
if (p > -1) {
first = fullName.substring(0, p).trim();
last = fullName.substring(p + 1,
fullName.length()).trim();
}
}
System.out.printf(
"firstname = '%s', lastname = '%s'\n",
first, last);
}
}
以相同的方式打印我的名字(两次),即 -
firstname = 'Elliott', lastname = 'Frisch'
firstname = 'Elliott', lastname = 'Frisch'