当前位置: 首页 > 知识库问答 >
问题:

Java相当于将char[]缩写为

沙靖琪
2023-03-14

在Java或静态编程语言中,相当于这个C代码的是什么:

char* data = new char[size]; 
//read file to this array

short version = 0;
memcpy(&version, data, 2);

我试过这个:

//java equivalent of the kotlin code below
Integer.parseInt(String(Arrays.copyOfRange(data, 0, 2)))

//kotlin:
data.copyOfRange(0, 2).concatToString().toInt()

但它不起作用。

ByteBuffer也不管用:

data[0] is 14
data[1] is 0
ByteBuffer.wrap(data).getShort() is 3584, memcpy is 14

data[2] is -28
data[3] is 45
data[4] is 0
data[5] is 0
ByteBuffer.wrap(data).getInt(2) is -466812928, memcpy is 11748

共有1个答案

冀子石
2023-03-14

尝试使用ByteBuffer

byte[] data = new byte[size];
ByteBuffer buffer = ByteBuffer.wrap(data);
short version = buffer.getShort();

如果需要,还可以更改字节顺序

 类似资料:
  • 问题内容: 从Java世界进入C#,是否有等效的HashMap?如果没有,您会推荐什么? 问题答案: 可能是最接近的。实现接口(类似于Java的接口)。 您应该注意一些明显的区别: 添加/获取项目 Java的HashMap具有用于设置/获取项目的和方法 C#的词典使用索引来设置/获取项目 键 Java 允许空键 如果您尝试添加空键,.NET会引发 添加重复密钥 Java 将用新值替换现有值。 如果

  • 问题内容: 是否有等效于python for Java中的“ dir”或提供类似功能(即,对象和类的属性以信息字符串形式输出)的库? 这个问题类似于clojure的这个问题,并且可能与此问题类似,与Java反射有关,这似乎是一个更复杂但相似的话题。 问题答案: 没有什么在完成标准库的 究竟 是什么,但你可以得到使用相同的信息。具体来说,有关发现类成员的文档中说明了调查和发现类成员的方法。使用该AP

  • 问题内容: 我正在使用Java进行编译器设计项目。进行了词法分析(使用jflex),我想知道哪种yacc类工具最适合(最有效,最易用等)进行语法分析,为什么这样做。 问题答案: 如果您特别想要类似YACC的行为(表驱动),那么我所知道的唯一一个就是CUP。 在Java世界中,似乎有更多的人倾向于ANTLR或JavaCC之类的递归下降解析器。 而且效率很少是选择解析器生成器的原因。

  • 问题内容: 是否有与.NET的App.Config等效的Java? 如果没有,可以使用标准方法来保留应用程序设置,以便在发布应用程序后可以对其进行更改? 问题答案: 对于WebApp,可以使用web.xml来存储应用程序设置。 除此之外,您可以使用Properties类来读取和写入属性文件。 您可能还需要查看Preferences类,该类用于读取和写入系统和用户首选项。这是一个抽象类,但是您可以使

  • 问题内容: 在C语言中,printf()语句允许在参数列表中提供精度长度。 星号分别替换为第一和第二个值。 我正在寻找Android / Java中的同等产品;String.format()引发异常。 编辑:谢谢,@Tenner; 它确实有效。 问题答案: 我用 有点难看(并且字符串连接使其性能不佳),但是它可以工作。

  • 问题内容: 我正在寻找Java ByteBuffer的“ C ++”。 我可能会丢失明显的内容,或者仅需要一个孤立的用法示例进行澄清。我浏览了iostream家族,它似乎可以提供基础。具体来说,我希望能够: 从字节数组/点构建缓冲区,并从缓冲区获取原语,例如getByte,getInt 使用原语(例如putByte,putInt)构建缓冲区,然后获取字节数组/指针。 问题答案: 您已经拥有,或者可