当前位置: 首页 > 知识库问答 >
问题:

在二维数组上输入字符串

秦锐
2023-03-14
import java.util.Scanner;

public class Test {
public static void main(String[]args){
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    String[][] matrix = new String[n][n];
    for ( int i=0 ; i<n ; i++){
        for ( int j=0 ; j<n ; j++){
            matrix[i][j] = in.nextLine();
        }
    }

    for ( int i=0 ; i<n ; i++){
        for ( int j=0 ; j<n ; j++){
            System.out.println(matrix[i][j]);
        }
        System.out.println();
    }
  }
}  

在java.util.scanner.throwfor(未知源)在java.util.scanner.next(未知源)在java.util.scanner.nextint(未知源)在java.util.scanner.nextint(未知源)在test.main(test.java:6)

如何修复以及如何在数组中输入字符串

共有1个答案

阎雪峰
2023-03-14

我认为您的问题在于:int n=in.nextint()的使用。在进行此调用后,在再次使用扫描仪之前,您应该使用下一行,方法是调用

//consume nextLine()
in.nextLine();

这样做的原因是因为像nextInt()、next()等函数不使用输入的'\n'字符,所以当输入后按enter键时,函数会接收之前的所有内容,并保留'\n'。希望为你解决它!

另外:nextline()按行读取,而不是按字符读取;如果您正在像问题中描述的那样输入:

--- '\n'
-m- '\n'
p-- '\n'

这个程序行不通。程序需要9个输入,但你只给了3个。通过简单地添加这一行,确保在接受整数后使用下一行:

//consume nextLine()
in.nextLine();

int n=in.nextint()行之后。程序将期望输入以以下方式输入:

 类似资料:
  • 在C++中将二维字符数组复制到一维数组字符串中最简单的方法是什么? 大概是这样的: 问候蒂尔曼

  • 问题内容: 我喜欢例如转换字符串: 变成这样的二维数组 我尝试使用该方法,但仍然没有解决方法:( 谢谢.. 问题答案: String data = “1|apple,2|ball,3|cat”; String[] rows = data.split(“,”); 除了使用正则表达式外,其他操作非常简单,因此元字符需要转义。 也可以看看 正则表达式和转义特殊字符 Java Arrays.equals(

  • 我有一个一维数组字符串,其中可能包含最多5个已知项。我想以“我的数组中总共有item1、item2、item3、item4、item5”这样的格式将数组字符串中的每一个(不管有多少个)输出到表单上的标签上。以下是我的阵列的外观:

  • 问题内容: 我正在使用使用Strings的二维数组的程序(一开始可能不是很聪明,但是eh),并且我想编写一个采用这些数组之一的函数(比方说array1),一个独立的副本,并返回它(假设为array2)。但是,当我然后更改array2中的值时,它似乎反映在array1中。 我的函数当前看起来像这样: 我声明一个新的字符串数组,然后对其进行迭代,分别复制每个值。当这不起作用时,我什至尝试从每个旧字符串

  • 我正在使用二维数组制作一个3x3矩阵。数组最初将显示全部“-”。之后,我尝试将数组的一些值更新为'1'和'2'。但显示仍然显示所有的'-',而不更新数组的值。

  • 我正在参加一个在线Java课程,并尝试我的第二个作业。第一项作业并不难,但这一项就差强人意了。我真的不知道从何说起。问题是这门课是在线的,基本的指导是阅读这些章节,然后编写程序。没有太多的指导,因为我的指导老师不在我身体上。 我以前从来没有使用过扫描器,也没有创建过二维数组。我的指导老师给出了在他的基础课程的每一个领域应该做什么的笔记,但我不知道从哪一个开始。 您的任务是实现一个类似的方案来存储任