为什么我在Java中的第二个if语句不起作用?

时间:2015-01-27 17:48:54

标签: java arrays if-statement while-loop iteration

早上好!

我的代码的目标是生成包含A-Z和0-9的所有可能的三个字符串。例如,我想要从AAA到999的所有可能性。

问题:我自己的代码最多只能输出A99。我的第二个if语句没有产生下一步,这让我感到困惑。我需要第二个if语句才能使A99中的A增加到BAA并继续前进。

这是我的代码:

{    
        public static void main(String args[]) {

        String[] AZ09 = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};

        while (z < AZ09.length) {
        System.out.println(AZ09[x]+AZ09[y]+AZ09[z]);
        z++;

              if ((AZ09[y]+AZ09[z]).equals("99") {
                   System.out.println(AZ09[x]+AZ09[y]+AZ09[z]);
                   x++;
                   y = 0;
                   z = 0;
              }

              if (AZ09[z].equals("9")) {
                   System.out.println(AZ09[x]+AZ09[y]+AZ09[z]);
                   y++;
                   z = 0;
              }    
        }

解决方案?想法?

请勿发布重复内容。我尝试了.equals()方法,仍然没有骰子

非常感谢你!

2 个答案:

答案 0 :(得分:0)

你有几个问题:

  1. 您要将字符串与==进行比较,您需要使用等于
  2. 你检查az09 [z] == 9,将z设置为0,所以下一个IF将永远不会成为现实
  3. 作为建议,您可以采取其他方式,检查此代码:

    public static void main(final String[] args)
    {
        final long start = Long.valueOf("999", 36);
        final long end = Long.valueOf("AAA", 36);
    
        for (long i = start; i <= end; i++)
            System.out.println(Long.toString(i, 36));
    }
    

答案 1 :(得分:0)

为什么不尝试使用以下代码? (你的if语句会删除太多可能的输出,这就是你的输出如此之小的原因)

public class Main {
    public static void main(String[] args) 
    {
     String[] array = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};

     for (int i = 0 ;i<array.length; i++){
         for (int j = i ;j<array.length; j++){
             for (int k = j ;k<array.length; k++){
                 System.out.println(array[i] + " " + array[j] + " " + array[k]);
             } 
         } 
     }

}

}