我正在研究java中的一個特殊尋路系統,它需要在一個點上打印它的路徑。這遠遠沒有完成,但我遇到了一個問題。當我運行我的代碼時,它將打印一個指向字符串的指針,而不是字符串本身。下面是代碼:java打印字符串給出指針編號
public class node {
int optionnum;
node[] options;
String[] dirrections;
String[] route;
boolean[] visited;
public node(){
options= new node[4];
dirrections= new String[4];
route= new String[50];
for (int i=0;i<50;i++){
route[i]="";
}
visited= new boolean[50];
}
public void revmdp(int num){
visited[num]=true;
for(int i=0;i<optionnum;i++){
System.out.println(options[i].route[0]); //how can this be a pointer?
options[i].revmdp(dirrections[i],num);
}
public void revmdp(String nroute, int num){
//System.out.println(route[0]+dirrections[0]);
if (!visited[num]||nroute.length()<route[num].length()){
route[num]=nroute;
visited[num]=true;
for(int i=0;i<optionnum;i++){
options[i].revmdp(route+dirrections[i],num);
}
}
}
}
輸出看起來像這樣
[Ljava.lang.String;@2d66a22b3;
正如你可以在路徑的構造,我已經設置的路徑朝字符串「」(空字符串)看到。由於字符串還沒有被改變,所以這個代碼被調用了,我希望它返回「」,但是它會給出這些奇怪的字符串指針。任何人都知道發生了什麼事?
注意我已經嘗試調用route [0] [0],但java不會允許這樣做。
如何聲明'route'? –
請按照命名約定。 – Cruncher
@TedHopp好點。這可能是一個Object []' – Cruncher