2016-07-13 72 views
-8
import java.util.*; 
public class StringInput 
{ 
    public static void main(String[] args) 
    { 
     Scanner sc=new Scanner(System.in); 

     //int i=1; 
     //String name[]=new String[2]; 
     System.out.println("Enter the String size"); 
     int size= sc.nextInt(); 

     String name[]=new String[size]; 

     //String str=null; 
     size=name.length; 
     System.out.println("enter the strings"); 
     for(int i=0;i<=size;i++) 
     { 
      name[i]=sc.nextLine(); 
     } 

     System.out.println("String length = " +size);  


     for(int i=0;i<=size;i++) 
     { 
      System.out.println("String is " +name[i]); 
     //System.out.println("String is " +Arrays.asList(name)); 
     } 

    } 

} 

輸出:如何顯示陣列內容

輸入字符串大小

輸入字符串

ASDF

asdasd

異常在線程 「主」 java.lang.ArrayIndexOutOfBoundsException:2 在Array.StringInput.main(StringInput.java:22)

//如何串的給定陣列輸出??

+0

'for(int i = 0; i silentprogrammer

+1

接下來閱讀這個問題http://stackoverflow.com/questions/13102045/skipping-nextline-after-using-next-nextint-or-other-nextfoo-methods –

回答

6

您應該從0迭代到尺寸-1(或者i < size):

for(int i=0;i<size;i++) 
3

的陣列0基於,所以第一元件是在位置0,和最後在位置大小-1,大小對應於數組中的元素數量。

java.lang.ArrayIndexOutOfBoundsException意味着你正在試圖陣列的範圍外訪問的元素。

解決的辦法是從0迭代到size-1。

for(int i = 0; i <= size-1; i++) 
{ 
    // Do your stuff... 
} 
2

也許你想修改代碼以使用您的陣列。長度屬性。

for (int i = 0; i <= array.length-1; i++) 

如果您根據需要使用ArrayList,也可以嘗試使用for-each循環。