我在xml解析器DefaultHandler2中使用StringBuilder。 builder是一个StringBuilder。
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
super.characters(ch, start, length);
builder.append(ch, start, length);
}
@Override
public void endElement(String uri, String localName, String qName){
strVar = builder.toString();
}
现在问题是StringBuilder
追加“\ n”新行char?
也可能是builder.setLength(0)
正在添加换行符。
如果我要接受这个新行,则无法从字符串中删除新行char。所有可能的变体中的strVar.removeAll("\\n","")
都无效。
任何想法?
由于 问候 基督徒
答案 0 :(得分:2)
StringBuilder没有附加任何'\ n'字符(除非你告诉它)。
'\ n'字符来自其他地方。
答案 1 :(得分:1)
最有可能的换行符是ch
数组的一部分。 StringBuilder
只会附加您告诉它的内容,并且不会自行添加换行符。
至于strVar.removeAll("\n", "")
没有删除换行符,请不要忘记使用调用的结果:
strVar = strVar.removeAll("\n", "")
Java中的字符串是不可变的,因此只需调用removeAll()
就不会修改原始字符串对象。