andrew9991
andrew9991
采纳率100%
2016-04-05 08:49 阅读 1.8k
已采纳

为什么不输入直接按回车会出现错误

不知道怎么改才能按回车直接输出0
还得按一次空格再回车才不出现错误 求教怎么修改

import java.util.Scanner;
public class Length {
public static void main(String[]args){
Scanner in= new Scanner(System.in);

    String[]num =null;
    num= in.nextLine().split(" ");
    int[]number = new int[num.length];
    for(int i= 0;i<number.length;i++){
        number[i]= Integer.valueOf(num[i]);

    }
    System.out.println(number.length);
}

}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    u010113247 Liuyiffan 2016-04-05 08:57

    在转化int之前加个判断
    import java.util.Scanner;
    public class Main {
    public static void main(String[] args){
    Scanner in = new Scanner(System.in);
    String[] num = null;
    num = in.nextLine().split(" ");

        if (num[0].equals("")) {
            System.out.println("#Total:0");
        } else {
            int[] number = new int[num.length];
            for(int i= 0;i<number.length;i++){
                number[i]= Integer.valueOf(num[i]);
            }
    
            System.out.println("#Total:" + number.length);
        }
    }
    

    }

    点赞 评论 复制链接分享
  • u012477144 StephenJava 2016-04-05 09:02

    public class test {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String[] num = null;
    num = in.nextLine().split(" ");
    int[] number = new int[num.length];
    boolean flag = false ;
    for (int i = 0; i < number.length; i++) {
    try {
    number[i] = Integer.valueOf(num[i]);
    } catch (Exception e) {
    System.out.println("0");
    flag = true;
    }
    }
    if(!flag){
    System.out.println(number.length);
    }
    }
    }

    点赞 评论 复制链接分享
  • sl_18500 小小Q_Forler 2016-04-05 09:20

    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String[] num = null;
    num = in.nextLine().split(" ", -1);
    int[] number;
    if (num.length ==1 && "".equals(num[0])) {
    number = new int[0];
    } else {
    number = new int[num.length];
    for (int i = 0; i < number.length; i++) {
    number[i] = Integer.valueOf(num[i]);

            }
        }
        System.out.println(number.length);
    }
    

    就是这样了

    点赞 评论 复制链接分享
  • qwe125698420 我叫睿 2016-04-05 09:24

    num= in.nextLine().split(" ");直接按回车,会出现空串。""转为int失败,所以加个强制转换异常处理就行。或者,在进for循环之前,加个判断,判断第一个num[0]是否是"",如果是,执行给number = new int[0];即int[] int[] number = new int[num.length];改成int[]number = num[0].equals("")?new int[0]:new int[num.length];这能解决提的直接按回车问题,但是不能解决输入字母问题。

    点赞 评论 复制链接分享
  • sl_18500 小小Q_Forler 2016-04-05 09:37

    你这个程序还是有问题的,你输入 空格+1+空格就会报错 或者 空格+1+空格+空格+空格,输出的是3

    点赞 评论 复制链接分享

相关推荐