数组拆分不给出预期输出

时间:2013-12-19 20:06:12

标签: java arrays java.util.scanner

先生,我正在尝试拆分数组[i]并将其存储到另一个数组中,但它无效。 这是我的代码

import java.util.Scanner;

public class prog1 {

  public static void main (String [] args){
      Scanner input = new Scanner(System.in);
      int a = input.nextInt();
      String arr1[] = new String [a];
      for (int i=0;i<a;i++) {
          arr1[i] = input.nextLine();
      }
      for (int i=0;i<a;i++) {
          String temp[] = arr1[i].split("\\+");
          System.out.println(temp.length);
          System.out.println(temp[0]);
      }
  }
}

示例输入:

 1
 arka + xyz

预期输出:

2
arka 

但是我得到的输出

1
<blank>

我是java的新手。你能不能帮我解决这个问题,并告诉我为什么我要面对这个问题。

2 个答案:

答案 0 :(得分:3)

您只读int nextInt()并且在阅读for循环中的其他行之前没有消耗第一行的结尾,因此for的第一次迭代{1}}循环读取第一行的结尾,而不是第二行。

在开始for循环之前,先点击第一行的结尾:

String chomp = input.nextLine();
for(int i=0;i<a;i++){
    // Then read the following lines here.

答案 1 :(得分:2)

问题是当你输入一个数字后按Enter键时,它被读作下一行。

解决此问题的一种方法是添加input.next();在int a = input.nextInt();之后,它将读取返回字符。我认为应用程序将按照您的预期运行。

或者你可以读这样的数字。

int a = Integer.parseInt(input.nextLine());