java - 有没有办法从 Java 中的方法提供自动扫描器输入?

标签 java testing java.util.scanner

我正在创建一个小型线性代数库,其中包含矩阵加法、标量乘法、获取转置等,以及一个将所需矩阵的维度作为参数的构造函数。

想法是在创建对象时能够返回一个给定大小的矩阵,其中包含随机元素或用户指定元素,我正在使用 Scanner 让用户在两者之间进行选择,并输入指定的元素。但我希望能够自动响应扫描仪,例如"yes"以获得具有随机元素的矩阵或仅具有用于测试的全 1 的矩阵。

我曾尝试使用 System.out.println("yes") 希望它能回答扫描器,但显然这不起作用。

 public static void main(String[] args){
        Matrix matrix1 = new Matrix(4,4);
        System.out.println("yes");

这是构造函数

Matrix(int rowSize, int colSize){
        Scanner scan = new Scanner(System.in);
        System.out.println("Do you want randomized elements?");
        String myChoice = scan.nextLine();
        if(Pattern.matches("(?i)[ye]+s*", myChoice)){
            NewMat(rowSize, colSize, 1);
        }
        else{
            NewMat(rowSize, colSize, 0);
        }
        System.out.println(GetMat());
    }

我希望能够轻松地创建一个矩阵,例如所有元素都为 1 或立即获得随机矩阵,而无需每次都回答扫描器。有没有办法直接使用 main 方法对 Scanner 做出响应?也就是说,是否可以做一些事情,比如创建矩阵并使用 System.out.println("yes") 来获取随机元素(我知道这行不通,但这是我的解决方案的一个例子寻找),从而避免必须在终端中写入?

最佳答案

使用具有三个可能值的第三个参数 input。说no_datayesno

Matrix(int rowSize, int colSize, String input) {
  Scanner scan;
  String myChoice;
  if (!input.equals("no_data") {
      scan = new Scanner(System.in);
      System.out.println("Do you want randomized elements?");
      myChoice = scan.nextLine();
    } else {
      myChoice = input;
    }
    if (Pattern.matches("(?i)[ye]+s*", myChoice)) {
      NewMat(rowSize, colSize, 1);
    } else {
      NewMat(rowSize, colSize, 0);
    }
    System.out.println(GetMat());
  }
}

然后就可以调用构造函数了

Matrix matrix1 = new Matrix(4,4,"yes");

关于java - 有没有办法从 Java 中的方法提供自动扫描器输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56128182/

相关文章:

java - 我制作了一个 CLI 计算器,我想知道,如何让程序无限期地接受数字,直到用户输入停止命令?

java - 用于下载 apache commons-net 库的 url 链接

java - MVC 实践。另一个服务中的服务

javascript - 开 Jest 和console.dir不会显示整个对象

java - 计算文件中的所有字符,包括\n 等

java - 扫描仪 in.hasNextInt() 永远不会返回 true

java - 错误:Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

java - 考虑在配置中定义一个类型为 'com.test.project.repositories.TaskRepository' 的 bean @Repository 注释已经存在

java - 如何使用路径通过 maven-surefire-plugin 包含集成测试

grails - 如何使用 spock 在 Grails 应用程序中测试具有真实事务的服务?