我们需要为实验室打印阵列,但我的教授不允许我们使用java.util.Array
。预期的输出是:
[1, 5, 6, 9, 10]
我尝试使用for循环来打印这些值,但是它始终在末尾打印额外的“,”:
[1, 5, 6, 9, 10, ]
我尝试了几种不同的方法,但无法弄清楚:
public String toString() {
String str = "[";
for (int i = 0; i < data.length; i++) {
str += data[i] + ", ";
} // End of for loop
str += "]";
return str;
} // End of method
答案 0 :(得分:2)
您可以按如下所示有条件地添加逗号:
public String toString() {
String str = "[";
for (int i = 0; i < data.length; i++) {
if(i == (data.length - 1)){
str += data[i];
} else {
str += data[i] + ", ";
}
} // End of for loop
str += "]";
return str;
} // End of method
答案 1 :(得分:1)
这是代码,您无需为最后一个元素添加“,”
public String toString() {
String str = "[";
for (int i = 0; i < data.length-1; i++) {
str += data[i] + ", ";
} // End of for loop
str += data[data.length-1];// for the last element don't need to use ","
str += "]";
return str;
} // End of method
答案 2 :(得分:0)
干净的方法是使用Java 8中引入的StringJoiner
。
int[] data = new int[]{ 1,2,3,4,5,6,7,8,9,10 };
StringJoiner sj = new StringJoiner(", ","[","]");
for(int i=0;i<data.length;i++){
sj.add(String.valueOf(data[i]));
}
System.out.println(sj.toString());
//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
答案 3 :(得分:0)
您还可以使用三元运算符来编写代码,如下所示:
public static String toString(String[] data) {
String str = "[";
for (int i = 0; i < data.length; i++) {
str += (i == (data.length -1)) ? data[i] : data[i] + ", ";
}
str += "]";
return str;
}