2013-09-23 33 views
0

我创建了一个扫描器类多个用户输入,我想那是整数成打印出来像NUM1字符串用户输入转换:NUM2:NUM3转换是整数转换为字符串

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

我想要能够使这样我就可以使用字符串中

System.out.println(); 

无需做NUM1 +“:” + NUM2“:” +每次NUM3我想使用的字符串。

+0

你知不知道你有多少诚信的期待?只需将扫描放在一个循环中,并将打印输入循环。 – idfah

回答

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"),所以如果你碰巧t o想稍后改变它,你可以轻松地做到这一点。

由于@Pshemo指出,类似的String.format是如何工作的,有PrintStream.printf()方法,在这种情况下可以作为System.out.printf(String format, Object... args)

System.out.printf("%d:%d:%d", num1, num2, num3); 

另一个方面来考虑:将你碰巧遇到(例如:不是3,但更多,甚至是任意数量的输入),您应该考虑使用数组(或适当Collections:List或Set实现的anz)来存储输入,并编写一个函数来提供所需的字符串。

在这种情况下,Apache的百科全书StringUtils可以派上用场:它有一个很好的多态连接方法,主动要求参加刚刚anbout东西:

//given an int[] named myArray: 
String myString = StringUtils.join(myArray, ':'); 
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

+0

这与'String s = num1 +“类似:”+ num2 +“:”+ num3'。 – Claudiu

+0

他们有类似的效果,但他们并不相同。使用字符串连接运算符连接n个字符串所花费的时间在n中是二次的。 –

+0

java编译器将简单连接'num1 +“:”+ num2 +“:”+ num3'转换为'StringBuilder.append'序列。所以我没有看到任何不同。事实上,如果你想在循环中使用它,最好使用StringBuilder。 – Claudiu

0

获取字符串像以前那样和存储它在字符串中:

String numbers = num1 + ":" + num2 + ":" + num3; 

然后打印:

System.out.println(numbers); 
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 
+0

使用另一个库仅用于连接字符串似乎对我来说过分。 –