2016-06-13 102 views
0

这不是重复,请阅读问题和理解,我有一个对象(一个char [],对象[],但对象从对象,它是一个字符数组(不是对象[])获取字符串

public String getStringFromObject(Object o){ 
    // What do I do here to get a String? o is actually a char[] 
} 

我有用于表示字符阵列的Java对象:

我获得通过一个Object cred成方法

L.info("Credentials component type is {} and is array -> {}", 
     cred.getClass().getComponentType(), cred.getClass().isArray()); 

此打印:Token's credentials are: [s, d, f] and type is [C

如何进入一个字符串呢?我无法弄清楚如何将对象投射到任何种类的[]数组。如果是从Object[]开始,那不会是一个问题。

+0

'[C'表示它是一个'char []',因此被转换成这个。然后调用String(char [])'构造函数。 – Thomas

+0

输出似乎来自不同的日志语句。你确定你发布了正确的吗? – manouti

+1

[如何将字符数组转换回字符串?](http://stackoverflow.com/questions/7655127/how-to-convert-a-char-array-back-to-a-string) – utybo

回答

4

如果你有char[],并且希望将其转换为一个String只需使用constructor

public String(char[] value) 

javadoc

分配一个新的String所以它代表的当前包含在字符数组参数中的字符序列。字符数组的内容被复制;字符数组的后续修改不会影响新创建的字符串。


如果你有一个Object是这里char[]是你拥有的一切:

char[] x = ....; 
Object objectIsACharArray = x; 
String s = new String((char[]) x); 

如果Object不是char[]而是代表或持有的东西一个字符数组,您需要一个自定义代码将其转换为String

+0

您不明白这个问题。我有一个对象。 – mikeb

+0

@mikeb我编辑了我的答案。 –

+0

没有'String'构造函数需要一个'Object'。因为这个原因,你不能只声明'x'为'Object'然后调用'new String(x)'。我相信,铸造是一种选择。 – bcsb1001

相关问题