C で次の宣言を行うと、アドレスに「+」を適用して、他の要素にアクセスできます。
char toto[5];
つまり、この演算子 + を適用すると、
toto+0x04
Java で別の配列要素にアクセスします。
この操作を Java で実装する別の方法はありますか?
どうもありがとう
私が正しければ、配列内のその位置にある要素にアクセスしたいでしょう。Javaでこれを行うことができます。
char foo[] = new char[]{'1', '2','3','4', '5'};
char fooAtPositionFour = foo[4];
この方法で新しい値を割り当てます。
foo[4] = 'x';
toto + 4はアドレスであり、Javaのメモリ管理ポリシーはCのポリシーとはかなり異なるため、技術的にはありません。ただし、toto [4]で*(toto + 4)を取得できます;)
ほとんどの場合、Javaには必要なものを実装する別の方法があります。
char[]
直接処理することはめったにありません。StringとStringBuilderを使用することをお勧めします。
String toto = "hello";
String lastChar = toto.substring(4); // from the 4th character.
あなたの質問に文字通り答えること。sun.misc.Unsafeをget/putByteまたはget/putCharクラスとともに使用してポインター演算を行うことができますが、本当に必要な場合を除いて、これを避けることをお勧めします。
実際、paramがchar []である最後の4バイトを分離する必要があります
最後の 4 バイトまたは最後の文字が必要ですか? 最後の文字toto[toto.length-1]
最後の 4 バイトについては、char 配列 (Java では UTF-16、C ではエンコーディングがどうなるかわかりません) をバイト配列に変換してから、最後の 4 バイトを取得する必要があります。
new String(toto).toBytes("THE_CHAR_ENCODING_YOU_WANT_TO_USE")