我正在尝试从我的print方法中删除最后一个逗号。有没有办法做到这一点? 谢谢。
public void print() {
for(int i = 0; i < M.length; i++){
for(int j = 0; j < M[i].length; j++){
System.out.print(M[i][j] + ",");
}
System.out.println();
}
}
输出:
1.5,2.0,3.0,
3.0,2.5,4.0,
2.5,4.0,2.5,
我最后添加了一个“if”语句来解决同样的问题。 以下是我最终如何做到这一点:
public void print() {
for(int i = 0; i < M.length; i++){
for(int j = 0; j < M[i].length; j++){
if(j == M[i].length-1){
System.out.print(M[i][j] +" ");
}
else{
System.out.print(M[i][j] + ",");
}
}
System.out.println();
}
}
输出:
1.5,2.0,3.0
3.0,2.5,4.0
2.5,4.0,2.5
答案 0 :(得分:3)
我经常使用这个习惯用法来解决这个问题 - 第一次使变量comma
特殊(""
),然后将其恢复到正常状态(", "
)第二次及以后:
public void print() {
for(int i = 0; i < M.length; i++){
String comma = ""; // first time special
for(int j = 0; j < M[i].length; j++){
System.out.print(comma + M[i][j]);
comma = ","; // second time onward
}
System.out.println();
}
}
答案 1 :(得分:2)
您应该在第二个if else
循环中使用for
语句。
而不是把逗号放在后面,最好把它放在前面。
示例代码如下所示:
public void print(){
int[][] M = {{1,3},{2,3,4},{5,6},{5,2}};
for(int i = 0; i < M.length; i++){
for(int j = 0; j < M[i].length; j++){
if (j==0)
System.out.print(M[i][j]);
else
System.out.print(","+M[i][j]);
}
System.out.println();
}
}
代码将输出
1,3
2,3,4-
5,6
5,2
答案 2 :(得分:1)
在第二个for循环中,添加一个if语句,检查它是否是列表的最后一项。如果是,请省略逗号。否则,请加上逗号。
答案 3 :(得分:1)
你可以试试这个
public void print() {
for(int i = 0; i < M.length; i++){
for(int j = 0; j < M[i].length; j++){
System.out.print(M[i][j]);
if (i < M.length-1 || j < M[i].length - 1) {
System.out.print(",")
}
}
System.out.println();
}
}
基本上它检查元素是否是数组中的最后一个,如果不是,则打印逗号。如果它不打印逗号。希望这有帮助
答案 4 :(得分:0)
您可以在项目之前而不是之后使用","
,而不是在第一项之前打印它:
public void print() {
for (int i = 0; i < M.length; i++) {
if (M[i].length != 0) {
System.out.print(M[i][0]);
}
for(int j = 1; j < M[i].length; j++) {
System.out.print("," + M[i][j]);
}
System.out.println();
}
}
您可能还希望将行存储在变量中,这样您就不会反复访问i
M
元素:
public void print() {
for (int i = 0; i < M.length; i++) {
final type[] row = M[i];
if (row.length != 0) {
System.out.print(row[0]);
}
for(int j = 1; j < row.length; j++) {
System.out.print("," + row[j]);
}
System.out.println();
}
}
答案 5 :(得分:0)
如果您喜欢流,那么这是一种很酷的Java 8方式。使用int / double数组:D
Arrays.stream(M)
.map(x -> Arrays.stream(x)
.mapToObj(String::valueOf)
.collect(Collectors.joining(",")))
.forEach(System.out::println);