1

次のコードは、doc.oracle サイトからコピーした完璧なコードです。netbeans ではエラーなしでコンパイルされますが、出力は次のとおりです。

コンソールなし。ジャワの結果:1

コンソールを機能させるにはどうすればよいですか。netbeans の設定を微調整する必要はありますか? IDE netbeans での Java プログラミングの経験はありますが、混乱しています。私はJDKとNetbeanの最新バージョンを使用しています。

public class RegexTestHarness {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) { 
    Console console = System.console();
    if (console == null) {
        System.err.println("No console.");
        System.exit(1);
    }
    while (true) {

        Pattern pattern = 
        Pattern.compile(console.readLine("%nEnter your regex: "));

        Matcher matcher = 
        pattern.matcher(console.readLine("Enter input string to search: "));

        boolean found = false;
        while (matcher.find()) {
            console.format("I found the text" +
                " \"%s\" starting at " +
                "index %d and ending at index %d.%n",
                matcher.group(),
                matcher.start(),
                matcher.end());
            found = true;
        }
        if(!found){
            console.format("No match found.%n");
        }
    }
}

}

4

3 に答える 3

4

私はJDKとNetbeansの最新バージョンを使用しています。

NetBeans は独自のコンソールを使用するため、システム コンソールはまったくありません。ターミナルで実行してみてください。動作するはずです。

于 2013-11-12T09:46:58.033 に答える
2

Javadocから:

この仮想マシンにコンソールがある場合、System.console()メソッドを呼び出すことによって取得できるこのクラスの一意のインスタンスによって表されます。使用可能なコンソール デバイスがない場合、そのメソッドを呼び出すと が返されnullます。

NetBeans にはSystem.console().

System.in読み取りSystem.outと書き込みに使用します。

于 2013-11-12T09:47:37.153 に答える
1

後世のために

public class RegexTestHarness {

public static void main(String[] args) throws IOException{


    while (true) {

        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        System.out.println("\nEnter your regex:");

        Pattern pattern = 
        Pattern.compile(br.readLine());

        System.out.println("\nEnter input string to search:");
        Matcher matcher = 
        pattern.matcher(br.readLine());

        boolean found = false;
        while (matcher.find()) {
            System.out.format("I found the text" +
                " \"%s\" starting at " +
                "index %d and ending at index %d.%n",
                matcher.group(),
                matcher.start(),
                matcher.end());
            found = true;
        }
        if(!found){
            System.out.println("No match found.");
        }
    }
}
}
于 2015-04-20T13:46:48.673 に答える