我已经尝试了以下代码,但它显示了一些错误..
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));
}
}
答案 0 :(得分:3)
您只需要三个循环(每个角色一个):
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);
}
}
}
最后我添加了一个String,否则你会得到一个数值,而不是像你期望的那样得到String:
System.out.println('A' + 'B' + 'C'); // Output: 198
System.out.println("" + 'A' + 'B' + 'C'); // Output: ABC
答案 1 :(得分:0)
String.replace()
方法用newChar值替换字符串中出现的所有oldChar。
您可以尝试使用lastIndexOf()
来归档您的目标。
答案 2 :(得分:0)
我正在递增每个循环中的每个字符。此代码提供正确的输出: -
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");
}
希望这有帮助