gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 21:01:52 24 4
gpt4 key购买 nike

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

想法是在创建对象时能够返回一个给定大小的矩阵,其中包含随机元素或用户指定元素,我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com