0

Windows コマンド プロンプトや Mac ターミナルのような独自のコマンド ラインを作成しています。私の計画は、入力(機能)を分析して(機能しない)、表示(機能)してから繰り返すことでした。

これはそのためのテストファイルです

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", "\"} に分割します

次に、コンポーネント[0]が「エコー」であることを確認して見つけ、\にヒットして表示されるまですべてを表示します

 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 に答える