参考重复的问题陈述。 这是不同的,因为它向用户询问数字并相应地打印数组。这不是一个重复的问题。
public static void printArray(int[] myArray)
{
System.out.print("[");
for(int i = 0; i < myArray.length; i++)
{
myArray[i] = i + 1;
System.out.print(myArray[i] + ", ");
}
System.out.println("]");
}
}
答案 0 :(得分:5)
首先不要打印它。在字符串前打印逗号,仅在i > 0
。
public static void printArray(int[] myArray)
{
System.out.print("[");
for(int i = 0; i < myArray.length; i++)
{
myArray[i] = i + 1;
if (i > 0)
{
System.out.print(", ");
}
System.out.print(myArray[i]);
}
System.out.println("]");
}
答案 1 :(得分:4)
这样做的简单方法就是使用Arrays.toString
public static void printArray(int[] myArray)
{
System.out.print( Arrays.toString( myArray ) );
}
注意这会打印括号而不是大括号。为了完整性,如果你自己实现这个,除了长度= 0之外的其他边界条件,不要忘记检查数组是否为null
。
以下是使用StringBuilder
的示例,其中我在检查null
和长度= 0后总是删除最后两个字符。如果您有一个非常复杂的字符串来计算每个项目list / array,这比复制代码以使每个项在循环外更容易,并且比每次循环检查i==array.length-1
稍快一些。
public class MyArraysToString
{
public static void main( String[] args )
{
int[] test = { 8, 7, 6, 5, 4, };
printArray( test );
System.out.println( myToString( null ) );
System.out.println( myToString( new int[0] ) );
System.out.println( myToString( test ) );
}
public static void printArray( int[] myArray )
{
System.out.println( Arrays.toString( myArray ) );
}
public static String myToString( int[] a ) {
if( a == null ) return "null";
if( a.length == 0 ) return "{}";
StringBuilder sb = new StringBuilder();
sb.append( '{' );
for (int i = 0; i < a.length; i++) {
sb.append( a[i] );
sb.append( ", " );
}
sb.setLength( sb.length()-2 );
sb.append( '}' );
return sb.toString();
}
}
答案 2 :(得分:2)
我会将其修改为(在下一项之前打印逗号,索引&gt; 0)
System.out.print("[");
for(int i = 0; i < myArray.length; i++) {
myArray[i] = i + 1;
System.out.print(((i > 0) ? ", " : "") + myArray[i]);
}
System.out.print("]");
或者,在Java 8中,
System.out.println(
"[" +
Arrays.stream(array)
.mapToObj(String::valueOf)
.collect(Collectors.joining(", "))
+ "]"
);