System.out.print("Please select a game: ");
for (String s : gamesArray) {
System.out.print(s + ", ");
}
输出:
请选择一个游戏: spin, tof,按任意键退出...
我期望的输出:
请选择一个游戏: spin, tof 按任意键退出...
为什么它在最后一个数组项后面添加了另一个','?如何防止这种情况发生?
System.out.print("Please select a game: ");
for (String s : gamesArray) {
System.out.print(s + ", ");
}
输出:
请选择一个游戏: spin, tof,按任意键退出...
我期望的输出:
请选择一个游戏: spin, tof 按任意键退出...
为什么它在最后一个数组项后面添加了另一个','?如何防止这种情况发生?
为什么不直接调用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));
replaceAll("(^\\[)|(\\]$)", "")
来仅替换开头和结尾的方括号。 - anubhavasubstring
呢?当我们只想去除第一个和最后一个字符时,正则表达式有些过于复杂了。 - arshajii// 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( ", " );
}
}
int len = gamesArray.length;
if (len > 0)
System.out.println(gamesArray[0]);
for (int i = 1; i < len; i++)
System.out.print(", " + gamesArray[i]);
i
个元素。 - arshajii你能使用Guava库吗?如果可以,那么只需要一行代码:
String result = Joiner.on(", ").join(gamesArray);
System.out.println(result);
另一种处理方式(特别适用于您知道数组永远不会为空的情况)是在循环之前写入第一个元素,然后让循环写入 , <element>
。
for(int i=0;i<gameArray.length;i++){
System.out.print(gameArray[i]);
if(i!=gameArray.length-1){
System.out.println(", ");
}
}
在打印“,”以避免在最后一个游戏名称之后出现一个“,”之前,您必须测试您的数组中是否有更多元素。
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();