0

我正在制作自己的命令行,例如 windows 命令提示符或 macs 终端。我的计划是让它接受输入(工作)分析它(不起作用)并显示它(工作)然后重复。

这是它的测试文件

import java.util.Scanner;

public class addingStrings {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    //Init
    String out = "";

    String input = scan.nextLine();

    String component[] = input.split(" ");




    for(int i = 0;i < component.length;i++) {   

        if(component[i] == "echo") {

            i++;

            while(component[i] != "\\") {

                out += component[i];

                i++;
            }
        }
    }



    System.out.println(out);
}

}

它所做的是将代码拆分为一个数组,然后检查数组中的每个字符串是否有诸如 echo 或 print 之类的命令。一旦找到一个,它将在 echo 命令之后打印所有内容。

例如:它会写成:

"echo Hello World \\"

将其拆分为 component = {"echo", "Hello", "World", "\"}

然后检查并发现 component[0] 是“echo”,然后显示所有内容,直到它点击 \ 并显示

 Hello World

除了 if 语句之外,一切都有效。出于某种原因,如果我使用这样的数组

 String[] component = {"echo", "Hello", "World"};

而不是拆分字符串;它工作正常。

有没有办法让它以与普通数组相同的方式读取拆分字符串数组,或者将字符串拆分为数组输出字符串与直接将值保存到数组中不同。

4

1 回答 1

1

在java中比较对象使用.equals()方法而不是“==”运算符

更改 if(component[i] == "echo")if(component[i].equals("echo"))

更改 while(component[i] != "\\")while(!component[i].equals("\\"))

于 2013-10-20T17:04:28.323 回答