令我感到困惑。我抓取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());
答案 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对象。