繁体   English   中英

为什么在复制和粘贴输入时会出现 StringIndexOutOfBoundsExceptiuon?

[英]Why am I getting StringIndexOutOfBoundsExceptiuon when I copy and paste input?

我确保缓冲区完全为空(即没有换行符)。 只有当我手动输入输入时它才有效。

如果我复制并粘贴输入,我必须按一个额外的“Enter”,这可能是导致异常的罪魁祸首:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0

我的问题本质上是:为什么只有在我复制和粘贴输入时才会发生这种情况,我该如何纠正?

public class Skener {

public static void main(String[] args) 
{
    //Creating scanner and associated input variables
    Scanner scan= new Scanner(System.in);
    int r,zr,c,zc;
    
    
    //Reading input variables
    r=scan.nextInt();
    c=scan.nextInt();
    zr=scan.nextInt();
    zc=scan.nextInt();
    
    scan.nextLine();//cleaning up buffer
    
    
    char[][] matrix= {};
    
    matrix=read2DArray(r, c, matrix); <--Error happens in this method
    .....
}

public static char[][] read2DArray(int r,int c,char[][] twoD_array)
{
    Scanner scan= new Scanner(System.in);
    
    int row,col;
    String input;
    twoD_array=new char[r][c];
    
    for(row=0;row<=r-1;row++)
    {   
        input=scan.nextLine();
        for(col=0;col<=c-1;col++)
        {
        
            twoD_array[row][col]=input.charAt(col); <-- Error occurs at this line
        }
    
    }
    
    return twoD_array;
}

这是一个示例输入:

3 3 1 2
.x.
x.x
.x.

和相应的样本输出:

..xx..
xx..xx
..xx..

编辑:

像上面给出的示例输入这样的输入崩溃。 崩溃时col的值为 0。

因为你复制了额外的字符而你没有注意到

看:

当您复制图像时,请注意多余的字符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM