1. 很少用到 数组 的 toString 方法,突然用到时倒是不知道怎么写了。参考了文章发现 数组的 tostring 方法 没有重写,所以直接使用 toString 输出的是 [类型@哈希值] ,所以数组使用 toString 或是 数组转成 字符串应该写成:
Arrays.toString(a)
这种方法的toString()是带格式的,也就是说输出的是[a, b, c],如果仅仅想输出abc则需用以下两种方法:
方法1:直接在构造String时转换。
char[] data = {'a', 'b', 'c'}; String str = new String(data);
方法2:调用String类的方法转换。
String.valueOf(char[] ch)
参考资料:http://www.cnblogs.com/ningvsban/p/3955483.html
2. 数组去重,把字符串数组 转成 List 时,会自动在每一个元素前面加上一个空格,相同的元素有不同的空格就是不同的元素,对排序和去重的都有影响,我的代码如下:
if (MyUtils.isNotEmpty(order.getProdCodes())) { //,123,234,123,234,235,345,456,345
String[] prodCodeArr = order.getProdCodes().replace(" ", "").split(",");
Arrays.sort(prodCodeArr);
Set<String> prodCodeSet = new HashSet<>();
prodCodeSet.addAll(Arrays.asList(prodCodeArr));
prodCodeArr = prodCodeSet.toArray(new String[]{});
order.setProdCodes(Arrays.toString(prodCodeArr).replace("[", "").replace("]", "").replace(" ", ""));
}