【问题标题】:Take various Integer Inputs on same line JAVA在同一行 JAVA 上获取各种整数输入
【发布时间】:2019-05-27 12:03:21
【问题描述】:

我想在同一行接受各种integer 输入,比如说 2。实际上我想以 Matrix 的形式输入,因为输入值将以矩阵的形式存储。

问题是我每行只能接受一个输入,然后它会转到下一行接受下一个输入。我认为它的Scanner.nextInt() 会导致光标移动到下一行,因为我必须在每次输入后按 enter

代码:

import java.util.Scanner;
public class Matrix
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        boolean flag = false;
        int row = 2 , col =2;
        int[][] array = new int[row][col];
        do
        {
            System.out.printf("\n>>>>> Enter values for Matrix <<<<<\n");
            try
            {
                for (int i = 0; i < row; i++) 
                {
                    System.out.print("\n[  ");
                    for (int j = 0; j < col; j++) 
                    {
                        array[i][j] = input.nextInt();
                        System.out.print("   ");
                    }
                    System.out.print("  ]\n");
                }
                flag = true;
            }
            catch(Exception e)
            {
                System.out.println("Invalid Input. Try Again.");
                String flush = input.next();
                flag = false;
            }
        }while(!flag);      
    }
}

输出:

期望的输出:

[2 3]

[8 4]

我在互联网上搜索过这个问题,但每个人都在每行输入一个输入,但我希望它以矩阵样式输入。

【问题讨论】:

  • 您也可以将输入除以空格。一旦你按下回车键,它们都会被评估
  • 有时最好通过.nextLine()获取一行输入,然后通过拆分处理该行,或者仅基于该行创建一个新的扫描仪。 Scanner lineScanner = new Scanner(singleLineOfText);
  • 我已经知道这个解决方案,谢谢.. 但我想做的是接受个人输入!我认为这是不可能的。

标签: java matrix input formatting java.util.scanner


【解决方案1】:

您可以将输入行读取为由空格分隔的数字字符串,然后将其拆分

for (int i = 0; i < row; i++) 
{
    System.out.print("\n[  ");
    String matrixRow = input.next();
    String[] numbers = matrixRow.split(" ");
    for (int j = 0; j < col; j++) 
    {
         array[i][j] = Integer.parseInt(numbers[j]);
     }
     System.out.print("  ]\n");
}

【讨论】:

  • 我已经知道这个解决方案,谢谢.. 但我想做的是接受个人输入!我认为这是不可能的。
  • 您是否尝试将输入作为由空格分隔但不使用字符串的整数?它适用于我以这种方式获取输入,并且每个输入都按照输入顺序中指定的相应变量进行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
  • 2017-07-17
  • 1970-01-01
  • 2012-01-29
  • 2020-02-08
  • 1970-01-01
相关资源
最近更新 更多