0

我有一个用于创建“单元”的自定义类。创建单元后,我将它们存储在 ArrayList 中。但是当我试图取回这些值时,我在字符串之前得到了一些奇怪的 ��。

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

回报:

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

有谁知道这些来自哪里,我该如何移除它们?请告诉我是否需要提供更多代码。

编辑:

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.
4

2 回答 2

2

\0不是可打印的字符。不要替换[]\0并且不会出现。

编辑:

如果要删除括号[],请使用

valArr[0].replace("[", "")
于 2013-08-20T08:39:44.820 回答
0

您可以按如下方式删除 �。可能是字符编码的问题。它有 Unicode 值 0xFFFD

    String returnStr="[��BMW 320d Xdrive, 222201176��]";
    System.out.println(returnStr.replaceAll("\\[|\\]|\\�",""));
于 2013-08-20T08:34:36.377 回答