2013-08-20 52 views
0

我有一個自定義類用於創建「單元」。創建單元后,我將它們存儲在一個ArrayList中。但是,當我嘗試獲取值時,我在字符串之前得到了一些奇怪的東西。從字符串中刪除012

if (data.isSelected()) { 
    response.add(data.getName() + "," + data.getSerialNumber()); 
} 

返回:

[��BMW 320d Xdrive, 222201176��] 

沒有人有一個想法,這些地方來的,我怎麼能remvove呢? 請告訴我,如果我需要提供更多的代碼。

編輯:

public ArrayList<SampleData> dataList; 
System.out.println("Confirming data: " + valArr[i]); // here the chracters are normal 
dataList.add(new SampleData(valArr[0].replace("[", "\0"), valArr[1].replace("]", "\0"), false)); 
System.out.println("Trying: " + dataList.get(i).toStrings()); // here i get the wierd "?" signs. 
+15

這看起來像一個編碼的問題。數據如何編碼?你用什麼編碼輸出? 「U + FFFD 替換字符用於替換未知或無法表示的字符」https://en.wikipedia.org/wiki/Specials_(Unicode_block) – 2013-08-20 08:26:09

+0

是的,添加更多的代碼 - 你如何打印它? –

+0

檢查編碼,保存數據或讀取數據時。 – Felquir

回答

3

\0不是可打印字符。請勿將[]替換爲\0,並且不會出現 。

編輯:

如果你想刪除括號[],使用

valArr[0].replace("[", "") 
+1

+1:正確的做法 - 不要將它添加到字符串中的第一位 – bdares

+0

謝謝,這刪除了「 」。是否有另一種正確的方法來刪除括號? –

+0

爲什麼要刪除括號?我們不知道你想要做什麼來給你更好的建議 – 2013-08-20 08:44:04

0

您可以刪除如下。可能是字符編碼問題。它具有Unicode值0xFFFD

String returnStr="[��BMW 320d Xdrive, 222201176��]"; 
    System.out.println(returnStr.replaceAll("\\[|\\]|\\�","")); 
+1

提供unicode而不是原始複製粘貼。 – TecHunter

+0

@TecHunter我仍在編輯這個:( –