【问题标题】:How declear the char array?如何清除 char 数组?
【发布时间】:2014-04-28 09:18:55
【问题描述】:

嗨,请解释一下如何像这样声明char数组。在java中?

char szData[50] = "*KW,NR09G00001,001,082309#"  

【问题讨论】:

  • 为什么是 50?那么数组中剩下的位置呢,它们会有什么值呢?
  • K 是一个字符,你打算如何将这些字符添加到数组中?
  • 它必须是字符数组,而不是字符串 char szData[50] = {'*','K','W',',','N' .. etc};跨度>
  • 我需要 50 码如何添加

标签: java char


【解决方案1】:
char[] szData = "*KW,NR09G00001,001,082309#".toCharArray();

如果您需要包含 50 个元素的数组,则:

char[] szData = Arrays.copyOf("*KW,NR09G00001,001,082309#".toCharArray(), 50);

【讨论】:

  • char szData[50] - C 风格声明
  • 我要50码怎么加?
  • @user3475175 - 你不能。这是 Java 而不是 C。
  • 2a 4b 57 2c 4e 52 30 39 47 30 30 30 30 31 __ 2c 30 31 35 2c 30 38 30 37 35 36 2c 23 00 00 00 00 00 00 00 __ 00 00 00 00 00 00 00 00 00 00 00 00 00 //命令字符串 50byte(*KW,NR09G00001,015,080756,#) 我需要这样生成
  • @StephenC 实际上你可以。这与 C 的理念不同,因此需要一些额外的工作。
【解决方案2】:

如果固定数组大小50对你有什么重要原因:

char[] szdata = new char[50];
char sc[] = "*KW,NR09G00001,001,082309#".toCharArray();
for(int i=0;i<szdata.length;i++) {
    if (i<sc.length) szdata[i]=sc[i];
}

【讨论】:

  • 也许System.arraycopy() 在这里比较合适;)
  • 对,但我认为这解释得更好。
  • 嗯,我认为System.arraycopy 几乎是不言自明的,OP 会在一秒钟内了解该行的含义。至于参数细节,javadoc会帮助OP。
猜你喜欢
  • 2010-10-12
  • 1970-01-01
  • 2020-01-10
  • 2012-06-08
  • 2011-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多