2016-07-13 17 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)); 
     } 

    } 

} 

Ausgabe:Wie das Array Inhalt anzeigen

die Größe String Geben Sie

die Saiten eingeben

asdf

asdasd

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 bei Array.StringInput.main (StringInput.java:22)

// Wie die gegebene Anordnung von Zeichenketten zur Ausgabe ??

+0

'für (int i = 0; i silentprogrammer

+1

Lesen Sie weiter diese Frage http://StackOverflow.com/Questions/13102045/Skipping-nextLine-after-using-next-NextInt-oder-other-nextfoo-methods –

Antwort

6

Sie sind von 0 bis size-1 iterieren sollte (oder i < size):

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

Ein Array ist 0 basierend, so dass das erste Element an der Position 0 und die letzte ist bei Position size-1, Größe entspricht der Anzahl der Elemente im Array.

java.lang.ArrayIndexOutOfBoundsException bedeutet, dass Sie versuchen, auf ein Element außerhalb des Bereichs des Arrays zuzugreifen.

Die Lösung besteht darin, von 0 bis zur Größe 1 zu iterieren.

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

Vielleicht möchten Sie Ihren Code ändern, um stattdessen die .length-Eigenschaft Ihres Arrays zu verwenden.

Sie können auch for-each-Schleifen verwenden, wenn Sie eine ArrayList verwenden, die Ihren Anforderungen entspricht.

Verwandte Themen