【问题标题】:String to char array Java字符串到字符数组 Java
【发布时间】:2012-04-20 09:23:13
【问题描述】:

我对此感到困惑,我需要一些新的眼光,我不确定这段代码为什么会这样做。

String string = new String(new char[] {(char) 0x01, (char) 0x02, ... ,(char) 0xFC});

输出是直到最后一个数字(0xFC)返回-4之前的所有内容, 我知道它是一个十六进制值,但如果我对十进制值 252 做同样的事情,它也会给我一个负数。我希望这只是一个简单的解决方案,我只是看不到它。

提前谢谢。

【问题讨论】:

  • 你想返回什么?
  • 所以你试图创建一个字符串from一个字符数组?
  • 0xFC 是一个正整数; char 类型未签名。结果代码点是 U+00FC - 带有分音符号的拉丁文小写字母 U。你是如何输出字符串的?
  • 0xFC 结果为 252,而不是 -4 ideone.com/cIi9J

标签: java arrays


【解决方案1】:

字符串转char数组很简单

String str = "someString"; 
char[] charArray = str.toCharArray();

您能详细解释一下您要做什么吗?

* 更新 *

如果我理解您的新评论,您可以使用字节数组并提供示例。

byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array();

for (byte b : bytes) {
   System.out.format("0x%x ", b);
}

输出如下

0x65 0x10 0xf3 0x29

【讨论】:

  • 我正在尝试发送一个带有字节数组或字符数组的数据包,以获取我在封闭网络上的设备的特定值。我正在制作一个应用程序远程。只需要 9 个字节的数组,即可给出特定的十六进制或十进制值。
  • 上面的一个不错的快捷方式是“string”.toCharArray()。它可以为您节省一行代码。
猜你喜欢
  • 1970-01-01
  • 2018-08-10
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
  • 2014-04-28
  • 2011-10-04
相关资源
最近更新 更多