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

使用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键导致输入失败或输入错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值