收集数组中的用户输入和打印用Java排序

时间:2015-09-22 17:47:13

标签: java arrays

我尝试收集用户输入并在输入后对其进行排序" bye"给出。但是我不明白如何完成" bye"部分。 这是我到目前为止所拥有的。有人可以解释为什么我不能添加nextLine()而不是nextInt()并将内容更改为Strings。然后,我可以用字符串" bye"打破while语句。但到目前为止,它都没有对我有用。

import java.util.*; 

public class Work {
  public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    int[] values = new int[1];
    int currentSize = 0;
    System.out.print("Type a number ");
    while( s.hasNextInt())
    {
      if(currentSize >= values.length)
      {
        values = Arrays.copyOf(values, values.length + 1);
      }
      System.out.print("Type: ");
      values[currentSize] = s.nextInt();
      currentSize++;
      Arrays.sort(values);
      System.out.print(Arrays.toString( values ) );
    }

  }
}

2 个答案:

答案 0 :(得分:2)

  

有人可以解释为什么我不能添加nextLine()而不是nextInt()   并将事情改为Strings。

你可以,你只需要处理转换。

String input = null;
while(!"bye".equalsIgnoreCase(input))
{
    value = Integer.parseInt(input.trim());

    //..do stuff with the int value

    input = s.nextLine();
}

如果您不想相信用户会输入数字,则可能需要处理NumberFormatException

答案 1 :(得分:0)

嗯,詹姆斯发布的答案是恰当的!

虽然,如果你想在用户输入“bye”并使用 nextLine()时退出循环,那么这是另一种解决方案。

public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    int[] values = new int[1];
    int currentSize = 0;
    System.out.print("Type a number ");

    while (s.hasNext()) {

        // assign it to local var
        String input = s.nextLine();

        // check for bye
        if (!input.equalsIgnoreCase("bye")) {
            if (currentSize >= values.length) {
                values = Arrays.copyOf(values, values.length + 1);
            }
            System.out.print("Type: ");
            // add the input value.
            values[currentSize] = Integer.parseInt(input.trim());
            currentSize++;
            Arrays.sort(values);
            System.out.print(Arrays.toString(values));
        } else {
            System.out.println("exiting...");
            System.exit(1);
        }
    }
}

这个在代码中添加了一些分支,用于使用if-else循环进行用户输入字符串比较 希望能帮助到你!