System.out.print("Please select a game: ");
for (String s : gamesArray) {
System.out.print(s + ", ");
}
输出:
Please select a game: spin, tof, Press any key to exit...
我的输出除外:
Please select a game: spin, tof Press any key to exit...
为什么在最后一个数组项后添加另一个','? 如何预防?
答案 0 :(得分:8)
为什么不拨打Arrays#toString(array)
:
System.out.print("Please select a game: %s%n",
Arrays.toString(gamesArray).replaceAll("(^\\[)|(\\]$)", ""));
要避免使用正则表达式:
String tmp = Arrays.toString(gamesArray);
System.out.print("Please select a game: %s%n", tmp.substring(1, tmp.length()-1));
答案 1 :(得分:7)
// iterate throght array
for ( int i = 0; i < gamesArray.length; i++ ) {
// get the element
String s = gamesArray[i];
// print it
System.out.print( s );
// test if the current element is not the last (array size minus 1)
if ( i != gamesArray.length - 1 ) {
// if it is not the last element, print a comma and a space.
System.out.print( ", " );
}
}
答案 2 :(得分:2)
为什么在最后一个数组项后添加另一个','?
由于最后一项没有什么特别之处,您在每个元素的末尾添加了,
。
我该如何预防?
您可以尝试使用常规for
- 循环,只有在您的on不是数组的最后一个索引时才添加,
。同样地,您可以在之前添加,
除第一个之外的每个元素,您将获得相同的效果。
int len = gamesArray.length;
if (len > 0)
System.out.println(gamesArray[0]);
for (int i = 1; i < len; i++)
System.out.print(", " + gamesArray[i]);
答案 3 :(得分:2)
您可以使用Guava库吗?如果是,那就是一行代码:
String result = Joiner.on(", ").join(gamesArray);
System.out.println(result);
答案 4 :(得分:1)
最后一个逗号就在那里,因为你在每个元素后打印一个逗号。
您可以通过重写for循环来解决此问题:
for(int i=0;i<gameArray.length;i++){
System.out.print(gameArray[i]);
if(i!=gameArray.length-1){
System.out.println(", ");
}
}
答案 5 :(得分:1)
处理这个问题的另一种方法(特别是如果你知道数组永远不会是空的话)就是在循环之前写第一个元素,然后让循环写, <element>
。
答案 6 :(得分:0)
在打印“,”之前,您必须测试阵列中是否有更多元素,以避免在最后一个游戏名称后面有一个元素。
final Iterator<String> iterator = Arrays.asList(gamesArray).iterator();
while(iterator.hasNext()) {
System.out.print(iterator.next());
if(iterator.hasNext()) {
System.out.print(", ");
}
}
System.out.println();