2011-12-12 153 views
0

我在xml解析器DefaultHandler2中使用StringBuilder。 構建器是一個StringBuilder。StringBuilder追加換行符「 n」char

@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","")都不起作用。

任何想法?

感謝 問候 基督教

回答

2

的StringBuilder沒有任何附加 '\ n' 字符(除非你告訴它)。

'\ n'字符來自別處。

1

最有可能的換行符是ch數組的一部分。 StringBuilder只會附加您告訴它的內容,而不會自行附加新行。

至於strVar.removeAll("\n", "")不刪除換行,不要忘記使用調用的結果:

strVar = strVar.removeAll("\n", "") 

字符串在Java中是不可變的,所以簡單地調用removeAll()不會修改原始字符串對象。

+0

謝謝你的不變的字符串 - 我告訴它有用。我正在深入瞭解「角色」.. –