作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个小型线性代数库,其中包含矩阵加法、标量乘法、获取转置等,以及一个将所需矩阵的维度作为参数的构造函数。
想法是在创建对象时能够返回一个给定大小的矩阵,其中包含随机元素或用户指定元素,我正在使用 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_data,yes,no
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/
我是一名优秀的程序员,十分优秀!