使用toCharArray转换字符串会导致不同的字符

时间:2012-07-21 14:35:20

标签: android string arrays

令我感到困惑。我抓取String并将其转换为Char array,但结果字符与原始String不同。是什么赋予了?我一次尝试过一个角色,然后尝试toCharArray()。相同的结果。

输出:

07-21 09:58:27.700: V/meh(22907): Loaded String = [C@42126d88

07-21 09:58:27.700: V/meh(22907): Convert to Char = [C@41693070

String temp = prefManager_.getString("PrevGameState", "");
Log.v("meh", "Loaded String = " + temp);

pieceStates_ = temp.toCharArray();
Log.v("meh", "Convert to Char = " + pieceStates_.toString());

2 个答案:

答案 0 :(得分:4)

它输出的值确实不是字符串,它是内存中的指针。可能你没有覆盖toString()方法,或者出现了问题。

两个指针不相同这一事实并不意味着两个字符串不相等(应该与.equals(..)进行比较而不是以任何不同的方式)。

更准确地说,如果pieceStates_.toString()打印[C@41693070,则toString不会被覆盖,Java也不知道如何打印它。同样的事情适用于另一个变量。然后默认情况下,Java中的数组类型不可打印,您应该使用Arrays.toString(..)来实际查看其内容。

答案 1 :(得分:2)

使用:

System.out.println(“转换为Char =”+ String.valueOf(pieceStates _));

String.valueOf(Character_Array)

上面的方法将其转换回String对象。