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

问题描述

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

不知道怎么改才能按回车直接输出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);
}

}

解决方案

在转化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);
    }
}

}

解决方案二:

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);
}
}
}

解决方案三:

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);
}

就是这样了

解决方案四:

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];这能解决提的直接按回车问题,但是不能解决输入字母问题。

解决方案五:

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

时间: 2024-10-04 11:13:01

java-为什么不输入直接按回车会出现错误的相关文章

顺序栈入栈时输入入栈元素回车之后不能够运行,需要再输入个字节才能运行。预计主函数存在问题。

问题描述 顺序栈入栈时输入入栈元素回车之后不能够运行,需要再输入个字节才能运行.预计主函数存在问题. #include #include #define MAXSIZE 100 //顺序栈的存储空间的初始分配量 #define SElemType int typedef struct { SElemType *base; SElemType *top; int stacksize; } SqStack; //栈的初始化 void InitStack(SqStack *S) { S->base=(

java源码-关于Java中的输入问题?

问题描述 关于Java中的输入问题? 在Java中如何像在C语言中从键盘输入数据?是不是只能调用scanner. 解决方案 也可以在运行的时候输入数据,,主函数中的string[] args就是用来接受程序运行时的输入参数 解决方案二: 解决方案三: http://jingyan.baidu.com/article/5bbb5a1b31211813eba179e2.html 解决方案四: 在做OJ的题的时候,经常要进行测试用例的输入操作,由于这方面,还不是很熟练,梳理与总结一下.C++输入主要参

java eclipse 文件输入路径问题!!已经快抓狂!希望大神解救!!!!

问题描述 java eclipse 文件输入路径问题!!已经快抓狂!希望大神解救!!!! 路径老无效怎么回事!!!! 解决方案 试试这个public class CopyFile { public static void main(String[] args) throws Exception { String path=""E:1.doc""; String path1=""F:sae.doc""; File file=ne

监听-java 制作提示输入 求助

问题描述 java 制作提示输入 求助 我在JTextArea里设置监听,输入文本后会弹出一个含有JList的JWindow,通过选择JList里的选项可以自动完成输入,类似Myeclipse的提示输入功能.但是Jlist选项只能用鼠标选择,用键盘↑↓不能选择,键盘↑↓只会改变JTextArea里键盘光标的位置,请问怎么解决? 解决方案 http://stackoverflow.com/questions/14402091/jlist-horizontal-auto-scroll-to-righ

关于java中的输入输出流的问题,新手求教,谢谢

问题描述 关于java中的输入输出流的问题,新手求教,谢谢 import java.io.*; public class Filetest3 { public static void main(String[] args) { // TODO Auto-generated method stub File file=new File("word.txt"); try{ FileOutputStream out=new FileOutputStream(file); byte mybyt

struct-c-free结构体的问题输入后按回车就出现windows出现问题

问题描述 c-free结构体的问题输入后按回车就出现windows出现问题 #include struct yuan{ char p; //员工姓名 int b; //基本工资 int c; //职务工资 }; int main() { struct yuan a[2]; int i,f,q; printf("请分别输入员工名字及其基本工资和职务工资:n"); for(i=0;i<3;i++){ scanf("%s%d%d",&a[i].p,&

java中如何获取 控制台的输出信息,错误信息,和异常信息

问题描述 java中如何获取控制台的输出信息,错误信息,和异常信息.并把它们输入到一个文件中.请大侠们给小弟一个简单的例子. 解决方案 解决方案二:java控制台的输出信息都是java程序产生的啊,如果是异常通过trycatch捕获输出至文件中即可.解决方案三:java控制台的输出信息本身都是java程序产生的啊,异常可用捕捉的方式获取解决方案四:重定向标准输出.错误输出流就可以了.

一个在C#以及类似的面向对象系統(Java中估计也是如此)中常见的错误

错误|对象   using System; namespace demo{    class ClassA    {        protected string a = "test";         public void Display()        {            Console.WriteLine(a);        }    }     class ClassB:ClassA    {        protected string a = "a

《互联网领域Java从来就不是主流》一个完全错误的标题!炒作短时间带来了流量,却损害了作者的声誉,推荐人的信誉,以及读者对于网站的期待。

<互联网领域Java从来就不是主流>一个完全错误的标题! -- 置疑<Java已经过时了吗?>一文炒作够不够了? Robbin 于 2007-07-02 在自己的博客上发表了<Java已经过时了吗?>一文,地址:http://robbin.javaeye.com/blog/96925我于 2007-07-03将此文推荐到CSDN Java技术频道 http://java.csdn.net ,没想到此文却被一而再地修改标题,引起极大的误导.到现在可以看到的标题是<互