簡體   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