java beginner:在String中打印二维数组元素

时间:2015-12-13 15:43:35

标签: java arrays string element

package arrays;

import java.util.Arrays;

public class Route {

int cityindex;
int stadtwahl;
String[] cities = {"Berlin", "Hamburg", "Kiel", "Muenchen", "Stuttgart", "Dresden", "Heidelberg"};
int stadtwahlA;
int stadtwahlB;
int[][] entfernung;
int A;
int B;


public void Route() {

    entfernung = new int[A][B];
    this.A = A;
    this.B = B;
    entfernung[0][1] = entfernung [1][0] = 288;
    entfernung[0][2] = entfernung [2][0] = 355;
    entfernung[0][3] = entfernung [3][0] = 585;
    entfernung[0][4] = entfernung [4][0] = 632;
    entfernung[0][5] = entfernung [5][0] = 194;
    entfernung[0][6] = entfernung [6][0] = 628;


}

    public void einlesen() {


        System.out.println("Sie haben folgende Staedte zur Auswahl: " 
        + "\n0: " + cities[0] //Berlin
        + "\n1: " + cities[1] //Hamburg
        + "\n2: " + cities[2] //Kiel
        + "\n3: " + cities[3] //Muenchen
        + "\n4: " + cities[4] //Stuttgart
        + "\n5: " + cities[5] //Dresden
        + "\n6: " + cities[6] + "\n"); //Heidelberg

        System.out.println("Bitte waehlen Sie eine Stadt: ");
        stadtwahlA = Konsole.getInputInt();
        System.out.println("Bitte waehlen Sie ein Ziel: ");
        stadtwahlB = Konsole.getInputInt();

    }

        public void ausgabe() {
            System.out.println("Die Entfernung zwischen " + cities[stadtwahlA] + " und " + cities[stadtwahlB] + " betraegt : " );
            this.A = stadtwahlA;
            this.B = stadtwahlB;
            System.out.print(entfernung[0][1]);
            }
}

我的想法是打印一些城市之间的距离(entfernung)。 所以出于测试原因,我刚刚进入了城市0(柏林)和其他城市之间的距离。最后我想写

 System.out.print(entfernung[stadtwahlA][stadtwahlB]);

或者至少对我来说似乎是最好的选择 - 但出于某种原因,我在运行此代码时会得到nullpointerexception:

  

Sie haben folgende Staedte zur Auswahl:0:柏林1:汉堡2:基尔   3:慕尼黑4:斯图加特5:德累斯顿6:海德堡

     

Bitte waehlen Sie eine Stadt:1 Bitte waehlen Sie ein Ziel:5 Die   Entfernung zwischen Hamburg und Dresden betraegt:Exception in   线程“main”java.lang.NullPointerException at   arrays.Route.ausgabe(Route.java:70)at   arrays.RouteTest.main(RouteTest.java:8)

因为我是新手而且所有人,我会非常感谢任何帮助解释我我的错在哪里尽可能容易;)提前感谢!

编辑:这是我的测试类:

    package arrays;

public class RouteTest {

    public static void main(String[] args) {
        Route R1 = new Route();
        R1.einlesen();
        R1.ausgabe();


    }

}

1 个答案:

答案 0 :(得分:2)

你遇到的问题是因为你在Route的构造函数前面有空洞。所以entfernung永远不会被初始化。它是空的。

更改

public void Route() {

到此

public Route() {

您将遇到的下一个错误是ArrayIndexOutOfBoundsException,因为您的构造函数声明了一个0 x 0大小的数组,然后您尝试引用该数组中不存在的[0] [1]元素。那是因为你还没有初始化A和B变量。我会把它留给你作为一个练习。