Java 如何在Int数组中存储字符串?

Java 如何在Int数组中存储字符串?,java,string,multidimensional-array,int,homework,Java,String,Multidimensional Array,Int,Homework,我有个问题。作为我作业的一部分,我的老师要求用星号(*)替换数组中的所有0(零) 这是我的程序输出的一个示例: Best Tour: #31 Number of Moves: 57 ===================================== 1 16 57 6 0 36 47 0 56 7 0 3 46 5 32 37 17 2 15 8 33 30 35 48

我有个问题。作为我作业的一部分,我的老师要求用星号(*)替换数组中的所有0(零)

这是我的程序输出的一个示例:

Best Tour: #31
Number of Moves: 57
=====================================
 1   16   57    6    0   36   47    0   
56    7    0    3   46    5   32   37   
17    2   15    8   33   30   35   48   
14   55   22   45    4   49   38   31   
23   18   13   50    9   34   29   42   
54   51   24   21   44   41   26   39   
0    12   19   52   25   10   43   28   
0    53    0   11   20   27   40    0   
=====================================
基本上,只要有一个零,他就希望它显示一个星号。 这是一个整数数组。我尝试过创建一个值为“*”的字符串。然后我尝试将其解析为int,但我得到:

Exception in thread "main" java.lang.NumberFormatException: For input string: "*"
还有什么建议我应该试试吗


非常感谢你们!我只是没有正确地看待事情。在阅读了一些评论之后,我意识到在数组本身中将零改为星号没有多大意义

因此,我修改了printary()方法,以便在0的任何实例中,它都将打印*;否则它只会打印出应该在那里的任何号码

下面是它现在的样子:

Best Tour: #45
Number of Moves: 58
=====================================
 1   42   13   18   31   44   27    *   
58   11   32   43   14   17   30   45   
41    2   57   12   19   26   15   28   
56   33   10    5   16   29   46    *   
 3   40   55   34    9   20   25   50   
 *   37    4   53    6   49   22   47   
39   54   35    8   21   24   51    *   
36    *   38    *   52    7   48   23   
=====================================

你们都很有帮助,我可以很快补充一句!非常感谢你

我看到有8个数组,如果数组包含零,请确保逐个验证数组,将零替换为*

而不是尝试将星号放在int数组中,请关注将区域输出到屏幕的时间。创建一个方法来显示数组,就像你在问题中格式化了一样,当你打印数字时,一定要仔细检查它们的值


注意:我不会给出答案,因为这个问题是。

如果您也关心int的值,那么除了int之外,您不能可靠地将大部分内容存储在int数组中。(如果您真的愿意,您可以将char
*
转换为int,但它的ASCII代码(42)会将其与int的潜在有效值放在一起,并在以后给您带来各种痛苦。)

因此,您有两个现实的选择:

  • 存储字符串而不是整数,将所有内容转换为字符串,并存储
    “*”
    而不是
    “0”
    ;或
  • 在输出数组时只需担心星号,如果值为0,只需输出
    “*”

后者要简单得多,将整数保留为整数,这样以后如果需要,您仍然可以轻松地对它们进行计算。

打印时应处理
*
s,而不是在数组本身中用它们替换
0
s。类似于此(类似的方法可用于2D情况):


第一:不能将字符串添加到int[]数组中。 所以,你可以做如下的事情。 由于这是一个家庭作业,我无法写出全部代码

int[] x= {0,2,4,0,7};
String[] str= new String[x.length];
for(loop thru int array) {
    // check if the indexed element is equal to 0
    // if it is equal to 0 then add '*' into str
    // else add the number at the index into str
}

如果要通过str[]循环打印它们并打印每个元素

提示:数组是一个bunch int,输出是text。在哪里替换星号最有意义?数字还是文本?建议:1)显示您正在使用的代码,2)始终为您正在使用的语言添加标记。在int数组中替换*没有意义。我猜,他想替换数组元素本身,而不是打印一个
int[] x= {0,2,4,0,7};
String[] str= new String[x.length];
for(loop thru int array) {
    // check if the indexed element is equal to 0
    // if it is equal to 0 then add '*' into str
    // else add the number at the index into str
}