Java 使用扫描仪在控制台中显示多个变量
问题是,当您使用扫描仪输入输入时,它会显示在控制台上。我要他们按顺序展示。我想让他们表现得像一个矩阵。但使用nextInt方法时,它们都显示出彼此的底部 我想要这样的控制台输出: 但是使用nextLine()方法,您的新int在nextLine上显示如下: 如何使用扫描仪在同一行中显示多个变量Java 使用扫描仪在控制台中显示多个变量,java,java.util.scanner,Java,Java.util.scanner,问题是,当您使用扫描仪输入输入时,它会显示在控制台上。我要他们按顺序展示。我想让他们表现得像一个矩阵。但使用nextInt方法时,它们都显示出彼此的底部 我想要这样的控制台输出: 但是使用nextLine()方法,您的新int在nextLine上显示如下: 如何使用扫描仪在同一行中显示多个变量 import java.util.Scanner; public class ProbilityMatrixTest { static int M; static int N; static fl
import java.util.Scanner;
public class ProbilityMatrixTest {
static int M;
static int N;
static float[][] matrixX;
static float[][] matrixY;
static boolean isProbilityMatrix;
public static void main(String[] args) {
initiate();
testMatrix(matrixX);
System.out.println();
multiplyMatrix();
testMatrix(matrixY);
}
public static void initiate() {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the row and column size of matrix : ");
M = sc.nextInt();
N = sc.nextInt();
System.out.println();
matrixX = new float[M][N];
System.out.println("Enter values of " + M + "x" + N + " matrix :");
for (int j = 0; j < N; j++) {
for (int i = 0; i < M; i++) {
matrixX[i][j] = sc.nextFloat();
}
}
}
public static void testMatrix(float[][] givenMatrix) {
isProbilityMatrix = true;
if (M != N) {
isProbilityMatrix = false;
}
for (int j = 0; j < N; j++) {
float rowVariablesTotal = 0;
for (int i = 0; i < M; i++) {
rowVariablesTotal += givenMatrix[i][j];
if (givenMatrix[i][j] < 0) {
isProbilityMatrix = false;
}
}
if (rowVariablesTotal != 1.0f) {
isProbilityMatrix = false;
}
}
System.out.print("TEST RESULT : ");
if (isProbilityMatrix) {
System.out.println("Probility matrix");
} else {
System.out.println("not Probility matrix");
}
}
public static void multiplyMatrix() {
matrixY = new float[M][N];
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
float newMatrixVariable = 0;
for (int a = 0; a < M; a++) {
newMatrixVariable += (matrixX[i][a] * matrixX[a][j]);
}
matrixY[i][j] = newMatrixVariable;
}
}
System.out.println("The square of given matrix:");
for (int j = 0; j < M; j++) {
for (int i = 0; i < N; i++) {
System.out.print(matrixY[i][j] + " ");
}
System.out.println();
}
}
import java.util.Scanner;
公共类ProbilityMatrixTest{
静态int-M;
静态int N;
静态浮点[][]矩阵xx;
静态浮动[][]矩阵;
静态布尔非概率矩阵;
公共静态void main(字符串[]args){
发起();
testMatrix(matrixX);
System.out.println();
多重矩阵();
testMatrix(matrixY);
}
公共静态无效初始化(){
扫描仪sc=新的扫描仪(System.in);
System.out.print(“输入矩阵的行和列大小:”);
M=sc.nextInt();
N=sc.nextInt();
System.out.println();
matrixX=新浮点数[M][N];
System.out.println(“输入“+M+”x“+N+”矩阵的值:”);
对于(int j=0;j
}
您需要一次扫描整行。否则,您总是按enter键,使其看起来像是在前几行中先输入一个值 例如,键入
3,然后输入,然后可以键入三个以空格分隔的十进制值,输入,然后重复两次
System.out.print("Enter the row and column size of matrix : ");
String[] mn = sc.nextLine().split("\\s+");
int M = Integer.parseInt(mn[0]);
int N = Integer.parseInt(mn[1]);
System.out.println();
double[][] matrixX = new double[N][];
for (int i = 0; i < N; i++) {
matrixX[i] = new double[M];
String[] row = sc.nextLine().split("\\s+");
for (int j = 0: j < M: j++) {
matrix[i][j] = Double.parseDouble(row[j]);
//...
}
}
System.out.print(“输入矩阵的行和列大小:”);
字符串[]mn=sc.nextLine().split(\\s+);
int M=Integer.parseInt(mn[0]);
int N=Integer.parseInt(mn[1]);
System.out.println();
双精度[]矩阵xx=新双精度[N][];
对于(int i=0;i
请显示您的代码尝试,并详细说明您在使用此代码时遇到的问题。您知道扫描仪对象与结果的显示无关,因此您需要关注系统.out
的PrintStream
方法,包括print
、println
和printf
(最通用的方法)在控制台上显示变量时,我不需要使用system.out.print。扫描仪变量已出现在控制台上。我要的是按顺序给他们看。但对于每一个nextInt()方法,我都只差一行。我想让matris看看:但它显示了每只水獭的所有底部。非打印方法的问题在于,它的扫描仪总是下一行显示输入(糟糕的英语sry)。您需要在一行上准确地键入值是的。我想决定扫描仪输入要写的部分。所以输入看起来像一个矩阵。我有一种感觉。顺便说一句,你是说我可以用这个代码显示我想要的扫描仪输入,对吗?输入行和列的大小。。。不知道你为什么只打了一个号码。请在复制之前试着理解代码的作用。现在我非常理解它。你是说我需要用空格来写。我不能输入所有代码。是的,行得通。但我认为输入每一个输入是不可能的。扫描仪只会在您按enter键后接受输入,因此没有其他方法来格式化您的值。扫描仪必须从下一行获取其他输入,它不能从同一行获取。我必须用2个变量做1个输入,而不是拆分它。顺便说一句,我怎么能找到像“s//+”这样的拆分代码,我只发现“s//”意味着我想的下一个单词。