我目前遇到的问题似乎无法解决。
我需要从这个方法传递2个变量:
Element
在底部我调用方法程序():
public void neueRoute() {
Scanner in = new Scanner(System.in);
String bereich1 = "aAbBcCdDeEfFgG";
String bereich2 = "hHiIjJkKlLmMnNoO";
String start = "";
String ziel = "";
System.out.println("Themenbereich 1: Bahn A - G: ");
System.out.println("\nA\nB\nC\nD\nE\nF\nG\n");
System.out.println("Themenbereich 2: Bahn H - O: ");
System.out.println("\nH\nI\nJ\nK\nL\nM\nN\nO");
while (bereich1.contains(""+start) && bereich2.contains(""+ziel)
|| bereich2.contains(""+start) && bereich1.contains(""+ziel) || start.matches(ziel)) {
System.out.println("Geben Sie einen Startpunkt an: ");
start = in.next();
while (!start.matches("\\b[a-oA-O]\\b")) {
System.out.println("Geben Sie einen korrekten Startpunkt an: ");
start = in.next();
}
System.out.println("Geben Sie einen Zielpunkt an: ");
ziel = in.next();
while (!start.matches("\\b[a-oA-O]\\b")) {
System.out.println("Geben Sie einen korrekten Zielpunkt an: ");
start = in.next();
}
}
program(start, ziel);
}
我试图通过String变量start和ziel并在findConnection()中使用它们
我收到错误(我正在使用Eclipse IDE):
private void program(String start, String ziel) {
// find connection from 'I' to 'O'
connection = network.findConnection(start, ziel);
// print the path
System.out.println(connection.getPath());
// print the distance
System.out.println(connection.getTime());
}
注意:findConnection()需要String参数,start和ziel是。如果我举起例如" a"和" b"作为findConnection()中的参数,它可以工作。
感谢您的帮助。
答案 0 :(得分:0)
很可能network.findConnection正在检查值并在空时抛出异常。 在调用私有方法之前检查字符串是否为空,如果是in.hasNext()(扫描程序)
至于你的代码,这些是我的观察: 我认为你的循环应该是这样的,你有ANDs和ORs的混合
while ((bereich1.contains(""+start) && bereich2.contains(""+ziel)) || (bereich2.contains(""+start) && bereich1.contains(""+ziel)) || start.matches(ziel)) {
其次我认为
System.out.println("Geben Sie einen Zielpunkt an: ");
ziel = in.next();
while (!start.matches("\\b[a-oA-O]\\b")) {
System.out.println("Geben Sie einen korrekten Zielpunkt an: ");
ziel = in.next(); //ziel not start
}
我不明白的是你有一个外环并且内部循环应该是外部而是一个if?!!!
在调用程序(字符串,字符串)之前,您可以检查值是否为空或空。