打印像 AAA 这样的图案到 ZZZ 开始像 AAA AAB AAC 一样.阿兹阿巴阿布..兹兹



我已经尝试了下面的代码,但它显示了一些错误。

        String str="AAA";
        char[] ch=str.toCharArray();
        int length=str.length();
        for(int i=length-1;i>=0;i--)
        {
             for(int j=65;j<=90;j++)
             {
                 System.out.println(str.replace(ch[i] ,(char)j));
             }
        }

您只需要三个循环(每个字符位置一个(:

for(char c1 = 'A'; c1 <= 'Z'; c1++){
  for(char c2 = 'A'; c2 <= 'Z'; c2++){
    for(char c3 = 'A'; c3 <= 'Z'; c3++){
      System.out.println("" + c1 + c2 + c3);
    }
  } 
}

最后,我将添加到一个字符串中,否则您将获得一个数值,而不是您期望的字符串:

System.out.println('A' + 'B' + 'C');  // Output: 198
System.out.println("" + 'A' + 'B' + 'C');  // Output: ABC

String.replace()方法正在用newChar值替换字符串中所有出现的oldChar。

您可以尝试使用lastIndexOf()来归档您的目标。

我正在增加每个循环中的每个字符。此代码给出正确的输出:-

public static void main(String args[])
{
String s = "AAA";
StringBuilder ss = new StringBuilder(s);
char ccc = ss.charAt(0);
for(int i = 0 ; i < 26 ;i++)
{

    ss = ss.replace(0,1,Character.toString(ccc++));
    char cc = ss.charAt(1);
    for(int j = 0 ; j < 26;j++)
    {
        ss = ss.replace(1,2,Character.toString(cc++));
        char c = ss.charAt(2); 
        for(int k = 0 ; k < 26;k++)
        {
            ss = ss.replace(2, 3,Character.toString(c++));
            System.out.println(ss);
        }
        ss.replace(2, 3, "A");
    }
    ss.replace(1, 2, "A");
    }

希望这有帮助

最新更新