【发布时间】:2014-04-17 00:45:14
【问题描述】:
第一次在这个网站上和第一个 java 类。我被困在试图用回文填充数组。我已经尝试了一切,但没有运气。我做错了什么?
这是我目前编写的代码。
public class PalindromeListArray
{
public static void main(String[] args)
{
//Declare variables.
int digit1, digit2, digit3, digit4, digit5;
final int MAX = 10;
int x=0;
//Create an array of size 25.
String[] palindromeList = new String[25];
//Generate numbers.
for (digit1 = 1; digit1 < MAX; digit1++)
for (digit2 = 0; digit2 < MAX; digit2++)
for (digit3 = 0; digit3 < MAX; digit3++)
for (digit4 = 0; digit4 < MAX; digit4++)
for (digit5 = 0; digit5 < MAX; digit5++)
if (digit1 == digit5 && digit2 == digit4)
for(x=0; x < palindromeList.length; ++x){
//Populate array with palindromes.
palindromeList[x] = String.valueOf(digit1) + String.valueOf(digit2) + String.valueOf(digit3) + String.valueOf(digit4) + String.valueOf(digit5);
System.out.println(x + "\t" + palindromeList[x]);
}
}
}
【问题讨论】:
-
为什么需要内部 for 循环?似乎您只想在最里面的 if 中使用
palindromeList[x] = ...; x++;。 -
是的。删除
for x=0循环并使用palindromeList[x++] = String.valueOf(digit1... 并包含一个测试以保持 x -
一旦数组中有 25 个元素,我将尝试停止生成数字。我已经尝试过放置最后一个循环,结果不同,但没有成功。当我按照你的建议做时,我得到一个 ArrayIndexOutOfBoundesException。
-
太棒了!我在 palindromeList[x] = ... 之前添加了一个 if 测试,它起作用了。我不敢相信它这么简单。谢谢!!
-
但是你也“丢失”了“for x = 0...”循环,不是吗?