【问题标题】:Is there a way to bring Strings together in java apart from StringBuffer and toString?除了 StringBuffer 和 toString 之外,有没有办法在 java 中将字符串组合在一起?
【发布时间】:2014-06-27 05:31:21
【问题描述】:
String Fehlerspeicher_ist = "Fehlerspeicher";
String Fehlerspeicher_soll = "20_Fehlerspeicher";
String lines[] = temp.split("\n");

StringBuffer result = new StringBuffer();

for (int i=0; i< lines.length; i++)
{
    if (lines[i].contains(Fehlerspeicher_ist) && lines[i+1].contains("Fehler gespeichert")) 
    {
       lines[i].replace(Fehlerspeicher_ist, Fehlerspeicher_soll);
       result.append(lines[i]);
       result.append("\r\n");
    }
}

temp = result.toString();

不幸的是,这个 toString 抛出了 NullPointerException。我想我有这个问题,因为toString 方法已经在代码的不同部分使用。还有其他方法可以将这些String arrays 放在一起吗?类似于split 方法的反向可以用来代替StringBuffertoString

任何帮助将不胜感激。

【问题讨论】:

  • 此代码抛出错误,因为这一行:if (lines[i].contains(Fehlerspeicher_ist)&amp;&amp;lines[i+1].contains("Fehler gespeichert")) 尝试访问 lines[i+1],对于最后一个元素将超出数组大小。
  • 'temp' 在代码 sn-p 中不存在?!未定义无法解析符号...
  • @NorbertRadyk 是的,同意——但这不是 ArrayIndexOutOfBoundsException 吗?
  • 我敢打赌,抛出 NullPointerException 的不是 StringBuffer。显示堆栈跟踪。
  • 请不要使用StringBuffer,十年前被StringBuilder取代了。

标签: java nullpointerexception split tostring stringbuffer


【解决方案1】:

如果toString 方法调用抛出NullPointerException,那是因为您调用它的引用是null。不可能有其他原因。看看为什么是null 并修复它。

【讨论】:

  • 你这是什么意思?因为当我删除 toString 方法时,代码确实可以与其他部分(其中也有 toString 方法)一起使用,除非它没有按照我想要的方式进行更改。
猜你喜欢
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
相关资源
最近更新 更多