开发者社区> 问答> 正文

为什么当输入空格或者是直接按enter键的时候会抛出数组越界异常

public static void main(String[] args) throws IOException {
int i=1;
while(i!=0){
System.out.println("请输入用户名和密码,以分号分隔:");
Scanner sn=new Scanner(System.in);
String userPWD=sn.nextLine();
if(userPWD!=null||!"".equals(userPWD)){
String[] userPwd=userPWD.split(";");
String userpwd="用户名:"+userPwd[0]+" 密码:"+userPwd[1];
File file=new File("account.txt");
FileOutputStream fos=new FileOutputStream(file,true);
byte [] by=userpwd.getBytes();
fos.write(by);
fos.write("\r\n".getBytes());
fos.close();
}else{
System.out.println("输入的格式不正确,请重新输入!!");
}
}
}

展开
收起
蛮大人123 2016-03-20 16:18:30 2480 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    String userpwd="用户名:"+userPwd[0]+" 密码:"+userPwd[1];
    因为你的代码中需要用到userPwd[0]和userPwd[1],但是,假如只输入空格或者回车键,这样是String[] userPwd=userPWD.split(";");得到的userPwd长度最多是1,即最多只有userPwd[0],没userPwd[1],因此报数组越界错误

    2019-07-17 19:09:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载