【问题标题】:Replacing null String to empty String将空字符串替换为空字符串
【发布时间】:2014-11-12 06:03:22
【问题描述】:

我有一个小问题,但我很难解决。

我已经构建了一个字符串,它是一些对象属性的集合,由|| 构造和分隔。但是每当我有一些null 属性时,它就会继续打印null,我想用空字符串替换null

例如,对于输入

ADS||abc||null||null

我希望它变成

ADS||abc||||

我尝试了这两个,但它们都不起作用:

string.replace(null,"")
string.replace("null","")

有人可以帮忙吗?

【问题讨论】:

  • 不,应该是||null||成为||||
  • 您是否将字符串设置为replace() 的结果?例如。 string = string.replace("null", "")(你需要这样做,因为字符串是不可变的)
  • 如上所述,Java String 对象是不可变的。您可以在现有字符串的基础上创建一个新字符串,但无法更改现有的 String 本身。
  • 谢谢!我忘记了这个简单而愚蠢的错误……它起作用了。谢谢大家。
  • 这是一个问题,如果字符串为空,我们只需要进行一些验证,将其替换为“”而不是替换“空”..但现在,它工作得很好..还有其他更简单的方法吗?谢谢你提出这个问题

标签: java regex string replace


【解决方案1】:

由于字符串是不可变的,您应该将您的字符串变量分配给replace 方法的结果。

String str = "ADS||abc||null||null to become ADS||abc||||";
str = str.replace("null", "");
System.out.println(str);

输出:

ADS||abc|||| to become ADS||abc||||

【讨论】:

    【解决方案2】:

    你的意思是下面的代码吗?

    String[] names = new String("ADS||abc||null||null to become ADS||abc||||").split("\\|\\|");
    List<String> list = new ArrayList<>();
    for (String name : names) {
        list.add(name.replace("null", ""));
    }
    

    【讨论】:

      【解决方案3】:

      这很好用。

      public static void main(String[] args) {
              String s = "ADS||abc||null||null";
              s = s.replace("null", "");
              System.out.println(s);
          }
      

      输出

      ADS||abc||||
      

      【讨论】:

        【解决方案4】:

        您忘记了字符串是不可变的,请将其添加到您的代码中:

        String string = string.replace("null","");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-10
          • 2013-01-04
          • 1970-01-01
          • 2012-08-09
          相关资源
          最近更新 更多