我的问题中的重要词是交互式:对于编程竞赛(UVa 在线评委),我正在编写交互式 java 代码:它在 System.out 上输出并等待 System.out 上的响应。在。
我想测试这段代码的速度,但如果我手动进行交互,我的人类打字技能会减慢执行速度,并且测量结果会有偏差。
因此,我想要一个线程/应用程序/脚本/当我的应用程序在 System.out 上写入时看到的任何东西,然后(这个线程/应用程序/脚本/任何东西)写入我的应用程序使用其 System.in 读取的东西.
我的应用程序应该使用 System.in 和 System.out 进行通信,因为一旦我将它提交给在线评委,它就会被评判。
我认为多线程不会完成这项工作,因为 System.in 总是从键盘读取,而不是从另一个线程读取。
import java.util.Scanner;
public class Main {
public static void main(final String[] args) {
System.out.println("What now?");
final Scanner scanner = new Scanner(System.in);
final String response = scanner.nextLine();
scanner.close();
System.out.println("Finished: " + response);
}
}
如何在没有人敲键盘的情况下运行这段代码?
最佳答案
您的用例肯定可以使用多线程。 Java 机器人框架提供了发送击键的机制。引用:this post
关于java - 如何测试交互式java代码的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56181986/