为什么StringObject的方法chars()将字符串的char []作为u2 *返回

时间:2015-09-25 04:42:58

标签: android dalvik

Blow是dalvik / vm / oo / Object.h中struct StringObject的定义

struct StringObject : Object {
/* variable #of u4 slots; u8 uses 2 slots */
u4              instanceData[1];

/** Returns this string's length in characters. */
int length() const;

/**
 * Returns this string's length in bytes when encoded as modified UTF-8.
 * Does not include a terminating NUL byte.
 */
int utfLength() const;

/** Returns this string's char[] as an ArrayObject. */
ArrayObject* array() const;

/** Returns this string's char[] as a u2*. */
const u2* chars() const;
};

如何使用StringObject打印实际字符串?我试过并且无法从方法字符()中获取字符串。

而且,为什么StringObject的方法chars()将字符串的char []作为u2 *返回?

有什么建议吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是一个utf-16编码的字符串,因此每个代码单元是16位。因此,u2 *。