我该如何用空字符串替换单个字符

时间:2013-12-20 04:17:04

标签: java string split trim

我正在尝试用空字符串“”替换字符串中的“,”。 我相信以下代码是正确的,但是当我使用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;  }

3 个答案:

答案 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'