我正在尝试打印固定长度3的给定字符串的所有可能性。这是我的程序
import java.util.*;
import java.lang.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
String input = "abc";
int i=0,j=0,k=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
for(k=0;k<3;k++){
System.out.println(input.charAt(i)+input.charAt(j)+input.charAt(k));
}
}
}
}
}
但是它以这种格式打印数字的排列。但我打算以这种方式打印aaa,aab,aac,bbb ..
291
292
293
292
293
294
293
294
295
292
293
294
293
294
295
294
295
296
293
294
295
294
295
296
295
296
297
答案 0 :(得分:1)
input.charAt(i)
返回char
,这是一个整数类型。因此,+
执行int
添加,而不是String
s的连接。
在表达式的开头添加一个空字符串将解决您的问题:
System.out.println(""+input.charAt(i)+input.charAt(j)+input.charAt(k));
答案 1 :(得分:1)
你用过这一行。这可以解决你的问题。
$(...).tabs
答案 2 :(得分:1)
charAt
返回一个整数类型(实际上是char
,它是Java中的16位无符号整数类型)。 +
只是对值进行求和。
一种方法是在表达式前面添加一个空字符串文字:这会强制Java将<{1}}解释为连接:+
在我看来,这是Java中允许"" + input.charAt(/*etc*/
用作字符串连接运算符的缺陷。