如何在java中使用scanner函数逐个字符地获取一个字符并将其存储在二维数组中

如何在java中使用scanner函数逐个字符地获取一个字符并将其存储在二维数组中,java,arrays,Java,Arrays,我需要编写一个程序,读取输入行并将其存储在二维字符数组中 import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main(String[] args) throws java.lang.Exception { char[][] a = new char[4][5]; Scanner inn = new Scanner(Sys

我需要编写一个程序,读取输入行并将其存储在二维字符数组中

import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone {
    public static void main(String[] args) throws java.lang.Exception {
        char[][] a = new char[4][5];

        Scanner inn = new Scanner(System.in);

        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 5; j++) {
                a[i][j] = inn.next().charAt(i + j);
            }
        }

        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.println(a[i][j]);
            }
        }
    }
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
表意文字{
公共静态void main(字符串[]args)引发java.lang.Exception{
字符[][]a=新字符[4][5];
Scanner inn=新扫描仪(System.in);
对于(int i=0;i<4;i++){
对于(int j=0;j<5;j++){
a[i][j]=inn.next().charAt(i+j);
}
}
对于(int i=0;i<4;i++){
对于(int j=0;j<5;j++){
System.out.println(a[i][j]);
}
}
}
}

但是我遇到了运行时错误。谁能说一下如何解决它。

对于任何合理的答案,你应该说错误是什么

但是看看你的代码,这可能是因为你试图在一个循环中多次获得
inn.next()

试试这个

String value = inn.next();
for(int i=0;i<4;i++)
{
    for(int j=0;j<5;j++)
    {
        a[i][j]=value.charAt(i*5+j);

    }
}
String value=inn.next();

对于(int i=0;i你应该说出任何合理答案的错误是什么

但是看看你的代码,这可能是因为你试图在一个循环中多次获得
inn.next()

试试这个

String value = inn.next();
for(int i=0;i<4;i++)
{
    for(int j=0;j<5;j++)
    {
        a[i][j]=value.charAt(i*5+j);

    }
}
String value=inn.next();

对于(int i=0;i您必须先读取整个字符串,然后才能逐字符获取它:

    String s = inn.next();
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<5;j++)
        {
            a[i][j]=s.charAt(i+j);

        }
    }
String s=inn.next();

对于(int i=0;i您必须先读取整个字符串,然后才能逐字符获取它:

    String s = inn.next();
    for(int i=0;i<4;i++)
    {
        for(int j=0;j<5;j++)
        {
            a[i][j]=s.charAt(i+j);

        }
    }
String s=inn.next();

对于(int i=0;i请查看,输入一个字符,然后按enter键

public static void main(String[] args) throws java.lang.Exception {
        char[][] a = new char[4][5];

        Scanner inn = new Scanner(System.in);

        for (int i = 0 ; i < 4 ; i++) {
            for (int j = 0 ; j < 5 ; j++) {
                a[i][j] = inn.next().toCharArray()[0];

            }
        }

        for (int i = 0 ; i < 4 ; i++) {
            for (int j = 0 ; j < 5 ; j++) {
                System.out.println(a[i][j]);
            }
        }

    }
publicstaticvoidmain(字符串[]args)抛出java.lang.Exception{
字符[][]a=新字符[4][5];
Scanner inn=新扫描仪(System.in);
对于(int i=0;i<4;i++){
对于(int j=0;j<5;j++){
a[i][j]=inn.next().toCharArray()[0];
}
}
对于(int i=0;i<4;i++){
对于(int j=0;j<5;j++){
System.out.println(a[i][j]);
}
}
}

请看一看,输入一个字符,然后按回车键

public static void main(String[] args) throws java.lang.Exception {
        char[][] a = new char[4][5];

        Scanner inn = new Scanner(System.in);

        for (int i = 0 ; i < 4 ; i++) {
            for (int j = 0 ; j < 5 ; j++) {
                a[i][j] = inn.next().toCharArray()[0];

            }
        }

        for (int i = 0 ; i < 4 ; i++) {
            for (int j = 0 ; j < 5 ; j++) {
                System.out.println(a[i][j]);
            }
        }

    }
publicstaticvoidmain(字符串[]args)抛出java.lang.Exception{
字符[][]a=新字符[4][5];
Scanner inn=新扫描仪(System.in);
对于(int i=0;i<4;i++){
对于(int j=0;j<5;j++){
a[i][j]=inn.next().toCharArray()[0];
}
}
对于(int i=0;i<4;i++){
对于(int j=0;j<5;j++){
System.out.println(a[i][j]);
}
}
}

根据需要更改二维数组的大小。 导入java.util.*

class StringToCharArray
{
    public static void main (String[] args) throws java.lang.Exception 
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a String");
        char c[] = scan.next().toCharArray();
        int i,j,k=0,m;
        char data[][] = new char[10][10];
        for(i=0;i<2;i++)
        {
            for(j=0;j<3;j++)
            {
                    data[i][j] = c[k];
                    k++;
            }
        }
        for(i=0;i<2;i++)
        {
            for(j=0;j<3;j++)
            {
                System.out.print(data[i][j]);
            }
            System.out.println("");
        }
    }
}
类StringToCharray
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入字符串”);
char c[]=scan.next().toCharArray();
int i,j,k=0,m;
字符数据[][]=新字符[10][10];

对于(i=0;i根据需要更改二维数组的大小。 导入java.util.*

class StringToCharArray
{
    public static void main (String[] args) throws java.lang.Exception 
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a String");
        char c[] = scan.next().toCharArray();
        int i,j,k=0,m;
        char data[][] = new char[10][10];
        for(i=0;i<2;i++)
        {
            for(j=0;j<3;j++)
            {
                    data[i][j] = c[k];
                    k++;
            }
        }
        for(i=0;i<2;i++)
        {
            for(j=0;j<3;j++)
            {
                System.out.print(data[i][j]);
            }
            System.out.println("");
        }
    }
}
类StringToCharray
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入字符串”);
char c[]=scan.next().toCharArray();
int i,j,k=0,m;
字符数据[][]=新字符[10][10];

对于(i=0;i
运行时
你会得到什么错误?预期的
输入
输出
?你会得到什么
运行时
错误?预期的
输入
输出
?我也不认为charAt(i+j)不是OP需要的。你是对的,我认为它更像(i*5+j)。我会更新答案。是的,它必须更准确;)而且我不认为charAt(I+j)不是OP需要的。你是对的,我认为它更像(I*5+j)。我会更新答案。是的,它必须更准确;)