【问题标题】:How to create an array of integers in char type?如何创建 char 类型的整数数组?
【发布时间】:2020-02-11 19:47:38
【问题描述】:

我正在尝试为给定维度创建一个 char 类型的整数数组。例如,如果维度是 5,则数组应该是 {'1', '2', '3', '4', '5'},但是我没有得到任何输出。

public static void main(String[] args) {
    int dim = Integer.parseInt(args[0]);
    char [] num = new char[dim];
      for(int i = 49; i < dim; i++){
          for(int j = 0; j < dim; j++){
              num[j] = (char) i ;
          }
          System.out.println(num);
      }
}

这里我改了代码,我加了一个初始值ascii = 49: 但我仍然没有得到想要的输出:(

public static void main(String[] args) {
    int dim = Integer.parseInt(args[0]);
    char [] num = new char[dim];
    int ascii = 49;
      for(int i = 0; i < dim; i++){
          for(int j = 0; j < dim; j++){
              num[j] = (char) (ascii + i) ;
          }
          System.out.println(num);
      }
}

【问题讨论】:

  • 你能解释一下你为什么写你写的东西,这样我们不仅可以修复你的代码,还可以告诉你你理解的错误在哪里?
  • 我正在尝试测试给定的字符串是否有效。有效字符串必须采用以下形式:A4、G6、B1... 等等。字符串的第一个字符必须是大写字母,第二个字符必须是数字。我将在问题中包含我的其余代码。谢谢。
  • 等一下!测试给定字符串是否有效与生成字符数组['1', '2', '3'] 的原始问题无关。你最初的问题是XY Problem吗?
  • 好的,我要解决的实际问题是检查给定字符串是否采用有效格式。如果字符串是“abc”或“b56”则为假,给定字符串必须是大写字母和数字(直到给定维度)。

标签: java arrays loops


【解决方案1】:
int dim = Integer.parseInt(args[0]);

  for(int i = 49; i < dim; i++){

dim 需要超过 49 才能执行此循环的主体,并且执行此操作时确实有输出。

编辑:使用新代码,内部循环将相同的值写入整个数组。外部 for 循环这样做是为了增加值,每次都打印出数组。

你想做什么

          num[j] = (char) (ascii + j);

但可能没有外部 for 循环。

【讨论】:

  • 只是出于好奇,你为什么从 49 开始循环?为什么不是 1,然后循环到 i &lt;= dim
  • 因为 char 1 的 ascii 值为 49。
【解决方案2】:

您的问题可能在第一个 for 循环中:

for(int i = 49; i < dim; i++){

除非 dim 大于 49,否则永远不会进入 for 循环(因为您已将 i 指定为 49,条件是 dim 必须大于 i [或 i 必须小于 dim] 才能执行循环.

如果从未进入第一个 for 循环,则永远不会到达 print 语句。

【讨论】:

  • 哦,对了,我编辑了问题并添加了我的新代码 :)
  • 我查看了您帖子下方的 cmets。您能否更新您的问题以准确说明您要达到的目标。作为输出数组 {'1','2','3','4','5'} (其中元素的数量由某些输入指定)的目标,您只需要一个 for 循环,但您正在使用两个。
猜你喜欢
  • 1970-01-01
  • 2012-05-30
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
  • 2010-10-13
相关资源
最近更新 更多