gpt4 book ai didi

java - 将 C 或 C++ 常量转换为 Java

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:14:53 25 4
gpt4 key购买 nike

我有以下 C 或 C++ 常量:

static const char *selstr2 = "oooo"
"oC o"
"o o"
"oooo";

现在我不明白在 Java 中与此类似的是什么。它是 Java String 还是 String[]?

最佳答案

首先,请注意,在这种情况下,您的 C 风格字符串在取消混淆多行表示和连续 "" 的串联行为时是等效的。在这种情况下,

static const char *selstr2 = "oooooC oo  ooooo";

selstr2是指向 char[17] 的指针C 中的文字和 const char[17] C++ 中的字面量衰减const char*指针类型。注意这里 C 和 C++ 的重要区别:虽然类型不是 const在 C 中,您仍然无法修改内容。

您可能会认为这等同于 java.lang.String .但它不在两个重点上:(1) Java 字符串更宽;它们由 Java char 组成类型,它们是 16 位无符号类型。并且 (2) NUL 终止符未指定、隐含,甚至可能不存在。

因此我会说 java.lang.String更接近于 C++ std::basic_string<std::uint16_t>使用 UTF-16 编码,并且 C 风格的字符串在许多方面最接近 Java 中的字节数组,只是在末尾多了一个 0。

说了这么多,你可能会发现

static final java.lang.String selstr2 = "oooooC oo  ooooo";

将符合目的,除非您打算在两种语言之间进行互操作。

关于java - 将 C 或 C++ 常量转换为 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48943433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com