替代在控制台中手动编写

问题描述 投票:0回答:1

我有一个程序,该程序会扫描控制台中编写的输入并从中给出结果。如何将这个字符串直接写到我的代码中,这样我每次尝试该程序时都不必在控制台中手动将其写下来?我正在使用java.util.Scanner进行扫描。

现在,我正在运行测试仪,并在控制台中输入4个单词。然后程序给了我想要的结果。如何使打字部分自动化?

import java.util.Scanner;
import java.io.PrintStream;

public class B6A4_Interpreter {
    public static void eingabe(Scanner sc, PrintStream ps) {
        String position ="";
        String zeichen = "";
        String in = "";
        String satz = "";
        String Ergebnis = "";
        int count = 0;
        while (count < 4) {
            position = sc.next();
            zeichen = sc.next();
            in = sc.next();
            satz = sc.next();
            count = 4;
        }
        sc.close();
        if (position.equals("nach") && (satz.length() != 0)) {
            Ergebnis = satz.substring(satz.indexOf(zeichen)+1);
        }
        else if (position.equals("nach") && (satz.length() == 0)) {
            Ergebnis = "Zeichenfolge";
        }
        else if (position.equals("vor") && (satz.length() != 0)) {
            Ergebnis = satz.substring(0,satz.lastIndexOf(zeichen));
        }
        else if (position.equals("vor") && (satz.length() == 0)) {
            Ergebnis = "";
        }
        ps.println(Ergebnis);
    }
}

测试人员:

import java.io.InputStream;
import java.util.Scanner;


public class Test_B6A4 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        B6A4_Interpreter.eingabe(sc, System.out);

    }
}

非常感谢!

java java.util.scanner
1个回答
0
投票

您应该在此处使用测试。我建议使用JUnit5。但是,如果您不想这样做,则可以手动填充扫描仪:

public static void main(String[] args) {
        Scanner sc = new Scanner("FirstItem SecondItem ThirdItem FourthItem");
        B6A4_Interpreter.eingabe(sc, System.out);
}

如果您想让值包含空格,则可以为换行:

public static void main(String[] args) {
        Scanner sc = new Scanner("First Item\nSecond Item\nThird Item\nFourthItem");
        sc.useDelimiter(Pattern.compile("(\\n)|;"));
        B6A4_Interpreter.eingabe(sc, System.out);
}
© www.soinside.com 2019 - 2024. All rights reserved.