//Declared here the atributes int id and int [9][5] array.
public String getPos(int id){
String res = "";
for(int i = 0; i <9 ;i++ ){
for(int j = 0; j<5 ;j++){
if(this.arr[i][j] == id)
res = res + i + "," + j;
}
}
return res;
}
当我运行getPos(1)时;结果是8,2但我想要它打印9,3。我是怎么做到的?
答案 0 :(得分:1)
Java索引总是从0开始。所以0,0将是第一个元素。
只需在两个找到的索引中添加1即可返回。
另外:可以在多个位置找到“id”,还是它是唯一的?
如果它是唯一的并且你总是希望结果返回为“x,y”,那么你应该在找到id时立即返回:
public String getPos(int id){
for(int i = 0; i <9 ;i++ ){
for(int j = 0; j<5 ;j++){
if(this.arr[i][j] == id)
return (i+1) + "," + (j+1);
}
}
如果可以多次找到id,则必须考虑如何标记这些多个结果,因为当前您的程序可能会返回类似“1,56,2”的内容(如果在两者都找到提供的id, 5和6,2)
类似的东西:
public String getPos(int id){
String res = "";
for(int i = 0; i <9 ;i++ ){
for(int j = 0; j<5 ;j++){
if(this.arr[i][j] == id)
res = res +"["+ (i+1) + "," + (j+1)+"]";
}
}
return res;
^ - 将返回“[1,5] [6,2]”,将结果包装在大括号中并使其更具可读性。