在字符串数组中输入正确的输入

时间:2014-11-05 15:29:15

标签: java args

我的代码并未将第一个字符串作为输入。相反,它直接从第二个开始。任何人都可以告诉我,我在做什么'错?

import java.util.Scanner;
import java.util.Arrays;
class StrSort
{
    public static void main(String args[])
    {
        int size;
        Scanner s=new Scanner(System.in);
        System.out.print("\nEnter the size of the array : ");
        size=s.nextInt();
        String[] array=new String[size];
        int i;
        for(i=0;i<size;i++)
        {
            System.out.print("\nEnter string "+(i+1)+" : ");
            array[i]=s.nextLine();
        }
        Arrays.sort(array);
        System.out.print("\nStrings are sorted.");
        for(i=0;i<size;i++)
        {
            System.out.print("\nString "+(i+1)+" : "+array[i]);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

问题是大小之后的换行没有消耗。

import java.util.Scanner;
import java.util.Arrays;
class StrSort
{
    public static void main(String args[])
    {
        int size;
        Scanner s=new Scanner(System.in);
        System.out.print("\nEnter the size of the array : ");
        size=s.nextInt();
        s.nextLine();  // Consume newline left-over
        String[] array=new String[size];
        int i;
        for(i=0;i<size;i++)
        {
            System.out.print("\nEnter string "+(i+1)+" : ");
            array[i]=s.nextLine();
        }
        Arrays.sort(array);
        System.out.print("\nStrings are sorted.");
        for(i=0;i<size;i++)
        {
            System.out.print("\nString "+(i+1)+" : "+array[i]);
        }
    }
}