Java 如何在Int数组中存储字符串?
我有个问题。作为我作业的一部分,我的老师要求用星号(*)替换数组中的所有0(零) 这是我的程序输出的一个示例: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
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
}