在C中给出以下声明,我可以对地址应用'+'并进行访问 其他元素。
char toto[5];
换句话说,应用此运算符+
toto+0x04
在Java中访问不同的数组元素。
还有另一种在java中实现此操作的方法吗?
非常感谢
答案 0 :(得分:3)
如果我是对的,你想要访问数组中该位置的元素。你可以在java中做到这一点。
char foo[] = new char[]{'1', '2','3','4', '5'};
char fooAtPositionFour = foo[4];
并以这种方式分配新值:
foo[4] = 'x';
答案 1 :(得分:2)
技术上没有,因为toto + 4是一个地址,Java的内存管理策略与C的完全不同。但是你可以用toto [4]获得*(toto + 4);)
答案 2 :(得分:1)
实际上我需要隔离最后四个字节,其中param是char []
您需要最后四个字节,还是最后一个字符?最后一个字符toto[toto.length-1]
对于最后四个字节,您需要将char数组(Java中的UTF-16,我不知道C中的编码是什么)转换为字节数组,然后取最后四个字节。
new String(toto).toBytes("THE_CHAR_ENCODING_YOU_WANT_TO_USE")
答案 3 :(得分:0)
几乎总是在java中有另一种方法来实现你想要的东西。
您很少直接处理char[]
。首选使用String和StringBuilder。
String toto = "hello";
String lastChar = toto.substring(4); // from the 4th character.
从字面上回答你的问题。您可以将sun.misc.Unsafe与get / putByte或get / putChar类一起使用来进行指针运算,但我建议您避免使用它,除非您确实需要。