将整数的多个用户输入转换为字符串

时间:2013-09-23 22:09:05

标签: java string int converter

我创建了一个扫描程序类,我想将整数的用户输入转换为打印出来的字符串,如num1:num2:num3

int num1 = scan.nextInt();
int num2 = scan.nextInt();
int num3 = scan.nextInt();

我希望能够这样做,所以我可以使用

中的字符串
System.out.println();
每次我想使用字符串时,

无需执行num1 +“:”num2 +“:”+ num3。

4 个答案:

答案 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