我创建了一个扫描程序类,我想将整数的用户输入转换为打印出来的字符串,如num1:num2:num3
int num1 = scan.nextInt();
int num2 = scan.nextInt();
int num3 = scan.nextInt();
我希望能够这样做,所以我可以使用
中的字符串System.out.println();
每次我想使用字符串时,无需执行num1 +“:”num2 +“:”+ num3。
答案 0 :(得分:6)
您可以引入一个局部变量:
String myString = num1 + ":" num2 + ":" + num3;
然后你可以直接使用它:
System.out.println(myString);
此外,这可能是一种更方便的方式:
String myString = String.format("%d:%d:%d", num1, num2, num3);
String.format
可让您指定格式字符串(此次为"%d:%d:%d"
),因此如果您以后想要更改它,可以轻松完成。
正如@Pshemo所说,与String.format的工作方式类似,有PrintStream.printf()
方法,在此方案中可用System.out.printf(String format, Object... args)
:
System.out.printf("%d:%d:%d", num1, num2, num3);
要考虑的另一个方面:您是否会遇到需求的变化(例如:不是3,但更多,甚至是任意数量的输入),您应该考虑使用数组(或者anz)适当的集合:列表或集合实现)用于存储输入,并编写一个函数来提供所需的字符串。
在这种情况下, Apache Commons StringUtils
可以派上用场:它有一个很好的多态连接方法,提供加入以及任何东西:
//given an int[] named myArray:
String myString = StringUtils.join(myArray, ':');
答案 1 :(得分:4)
您可以使用StringBuilder
:
StringBuilder sb = new StringBuilder();
sb.append(num1);
sb.append(":");
sb.append(num2);
sb.append(":");
sb.append(num3);
System.out.println(sb.toString());
当append
方法返回对相同对象的引用时,可以链接这些调用:
StringBuilder sb = new StringBuilder();
sb.append(num1).append(":").append(num2).append(":").append(num3);
System.out.println(sb.toString());
各种重载的append
方法使您能够将其他几种类型附加到StringBuilder
。
答案 2 :(得分:0)
像以前一样获取字符串并将其存储在字符串中:
String numbers = num1 + ":" + num2 + ":" + num3;
然后打印出来:
System.out.println(numbers);
答案 3 :(得分:0)
番石榴Guava from Google可以帮到你。除了其他东西,它有这个很好的实用程序类。
public void concatenate() {
// Your user input, which could be maybe optimised as well
int int1 = 10;
int int2 = 20;
int int3 = 30;
int int4 = 40;
System.out.println(
Joiner.on(":") // delimiter that will be used
.join(ImmutableSet.of(int1, int2, int3, int4))); // Guava which creates temp list for you
}
结果:
10:20:30:40