Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 输入指令并使用ArrayList按相反顺序打印出来_Java_Arraylist - Fatal编程技术网

Java 输入指令并使用ArrayList按相反顺序打印出来

Java 输入指令并使用ArrayList按相反顺序打印出来,java,arraylist,Java,Arraylist,我必须输入一些指令,然后按相反的顺序打印出来。我只能同时输入一条指令和输出一条指令 public class ReturningHome { public static void main(String[] args) { // TODO Auto-generated method stub String direction; String Street; while (true){ System.out.println("Enter instructio

我必须输入一些指令,然后按相反的顺序打印出来。我只能同时输入一条指令和输出一条指令

public class ReturningHome {

public static void main(String[] args) {
    // TODO Auto-generated method stub

String direction;
String Street;


    while (true){
        System.out.println("Enter instructions from Home to School");
        System.out.println("Please input instructions in the format:"
                + "\nDirections: [L/R]"
                + "\nStreet Name: [Street Name]");
        System.out.println("The final instruction should be SCHOOL");

        System.out.println("");
        System.out.println("Enter a Direction");
        direction = TextIO.getlnString();
        switch (direction){
        case "L": 
            System.out.println("Enter a Street Name");
            Street = TextIO.getlnString();
            switch (Street){
            case "SCHOOL": 
                System.out.println("Instructions from School to Home:");
                System.out.println("Turn RIGHT into your HOME");
                System.exit(0);

                break;
            default:
                System.out.println("Instructions from School to Home:");
                System.out.println("Turn RIGHT onto "+Street+ " Street");
                System.out.println("");
                break;
            }
            break;

        case "R":
            System.out.println("Enter a Street Name");
            Street = TextIO.getlnString();
            switch (Street){
            case "SCHOOL":
                System.out.println("Instructions from School to Home:");
                System.out.println("Turn LEFT into your HOME");
                System.exit(0);
                break;
            default:
                System.out.println("Instructions from School to Home:");
                System.out.println("Turn LEFT onto "+Street+ " Street");
                System.out.println("");
                break;
            }

            break;


            default:
                System.out.println("Invalid Choice");
                break;

        }       
    }
}
}

如何使用ArrayList执行此操作?

以下是执行此操作的一种方法:

public class Instructions {

    public static void main(String[] args) {

        // Print instructions...

        List<String> instructionsList = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        String input = null;

        while (true) {

            do {
                System.out.println("Enter a direction");
                input = scanner.next();
            } while (!input.matches("L|R"));
            instructionsList.add(input);

            System.out.println("Enter a street name");
            input = scanner.next();
            if (input.matches("SCHOOL"))
                break;
            instructionsList.add(input);
        }

        scanner.close();

        System.out.print("From SCHOOL ");
        for (int i = instructionsList.size() - 1; i >= 0; i--) {
            if ((instructionsList.size() - i)%2 == 1)
                System.out.printf("turn %s to%n", instructionsList.get(i));
            else
                System.out.printf("%s, then ", instructionsList.get(i));
        }
        System.out.println("HOME");
    }
}

您可以向列表中添加任意数量的指令。我还对输出进行了一些格式化,但这不是必需的。

不。我的错不是故意这么说的:您可以编辑您的问题。您可以在输入每个指令时将其添加到ArrayList中;最后,您可以按相反顺序遍历ArrayList并打印找到的每条指令。我只能同时输入1条指令和输出1条指令。那不好吗?它应该如何工作?我必须输入至少2条指令并以相反的方向输出它们感谢这真的帮了我很大的忙:@user3670479,因为你没有导入它。