在使用nextLine()和其他Scanner类其他next输入方法的时候注意事项

578 阅读1分钟

使用nextLine()的时候一定要注意前边不能使用其他的next()方法。如果nextline()在其他next方法后使用一定要再加一个nextline()方法来读取上一个输入剩下的Enter键。 以下是分析: 首先放出错代码行好了:

然后来看看输入的内容与其报错的内容:

java.sql.SQLException: Data truncation: Incorrect date value: ‘建设银行’ for column ‘createtime’ at row 1 Query: INSERT INTO gjp_zhangwu (flname,money,zhanghu,createtime,description) VALUES(?,?,?,?,?) Parameters: [外包收入, 2000.0, , 建设银行, 2016-08-30] 语句中应该是要输入五条内容,可是我在输入第四条内容并按下Enter键的时候就已经结束输入了。 然后报错内容说的是输入的内容与数据表的列类型不对应,仔细看发现在SQL语句中的某一部分无输入值,且输入的内容对应列向后移了。 数据错位出现在第二和第三条数据中,于是我再反复运行且检查其他代码行发现无误的情况下,开始思考关于Scanner类中next输入方法。将方法改为同为返回字符串next()后就运行成功了。 1.next()方法一定会读取到有效字符才会结束输入,在此之前的空格或Enter键会自动被去掉。划分元素标准为:空格、制表符、换行符。 2.nextLine()方法的结束符仅仅是Enter键,且可以返回有带空格的字符串类型。 所以在使用nextLine()之前一定要注意是否有使用过其他next方法,否则在进行nextLine()输入的时候其实已经接收到上一语句的Enter键导致输入失败或输入错误。