And*_*lva 5 java android type-conversion charsequence
我使用下面的代码将Charsequence转换为Byte Array.然后我将字节数组保存为Blob到我的Sqlite数据库.
为此,我使用了以下代码,
public static byte[] toByteArray(CharSequence charSequence) {
if (charSequence == null) {
return null;
}
byte[] barr = new byte[charSequence.length()];
for (int i = 0; i < barr.length; i++) {
barr[i] = (byte) charSequence.charAt(i);
}
return barr;
}
Run Code Online (Sandbox Code Playgroud)
现在我想将从sqlite检索到的字节数组转换为Charsequence.但我无法得到任何帮助.
如何将字节数组转换为Charsequence?
任何帮助深表感谢.
Ste*_*lly 17
将a CharSequence转换为字节数组
CharSequence seq;
Charset charset;
...
byte[] bytes = seq.toString().getBytes(charset);
Run Code Online (Sandbox Code Playgroud)
要再转换回来
CharSequence seq2 = new String(bytes, charset);
Run Code Online (Sandbox Code Playgroud)
只要记住,CharSequence是通过实现的接口String,StringBuilder,StringBuffer等因此所有的String实例都是CharSequence实例,但不是所有CharSequence情况下都是String,但合同CharSequence是,它的toString()方法应该返回等效String
在Java中,所有字符串都表示为Unicode,因此只要使用者和生产者都是Java,最安全的字符集就是使用UTF-8或者UTF-16取决于数据的可能编码大小.拉丁文字在哪里占主导地位
Charset charset = Charset.forName("UTF-8");
Run Code Online (Sandbox Code Playgroud)
将99.9%的时间提供最节省空间的编码,对于非拉丁字符集(例如中文),UTF-16根据您编码的数据集,您可能会发现更多的空间效率.您需要测量显示它是一种更节省空间的编码,并且在任何情况下UTF-8我都建议将其UTF-8作为默认编码使用.
看起来你正在使用ASCII数据(如果没有,你的代码是非常有损的).
要从ASCII字节获取CharSequence,您可以这样做
CharSequence x = new String(theBytes, "US-ASCII");
Run Code Online (Sandbox Code Playgroud)
对于其他编码,只需指定字符集的名称即可.
| 归档时间: |
|
| 查看次数: |
13705 次 |
| 最近记录: |