直接访问字符串中char的unicode值

时间:2014-01-12 16:47:24

标签: java

我正在研究项目,我想在某个索引处访问字符串的ASCII值 但是我不希望在索引处访问char并将其解析为整数。

示例:

char character = s.charAt(8);    
int ASCII = (int) character;

有没有其他方法可以在不转换为char的情况下执行相同操作?什么是时间复杂性?

java中是否有内置函数? 我不知道内存中的char存储怎么能有人能解释一下? 以及如何处理Unicode而不转换为char

谢谢!

1 个答案:

答案 0 :(得分:1)

char已经是16位数字类型,其值被解释为正在显示的字符的代码点。当你把它转换为(int)时,根本没有涉及解析,复杂性是O(1),绝对是。就像你在问题中写的一样。

如果您严格需要ASCII(或任何其他特定编码),那么您应该使用getBytes之类的:

byte character = s.getBytes("ASCII")[8]
int ASCII = (int) character;

甚至只是第一行。请注意,获取字节时可能会替换非ASCII表示的字符。如果您使用多字节编码,还要考虑您要查找的索引可能不是8

我的2美分:考虑为您的数据研究比String更好的表示。