gpt4 book ai didi

java初学者: print two dimensional array element in a String

转载 作者:行者123 更新时间:2023-12-02 04:06:04 25 4
gpt4 key购买 nike

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]);

或者至少这对我来说似乎是最好的选择 - 但由于某种原因,我在运行此代码时遇到空指针异常:

Sie haben folgende Staedte zur Auswahl: 0: Berlin 1: Hamburg 2: Kiel 3: Muenchen 4: Stuttgart 5: Dresden 6: Heidelberg

Bitte waehlen Sie eine Stadt: 1 Bitte waehlen Sie ein Ziel: 5 Die Entfernung zwischen Hamburg und Dresden betraegt : Exception in thread "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();


}

}

最佳答案

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

改变

public void Route() {

至此

public Route() {

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

关于java初学者: print two dimensional array element in a String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34252878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com