开发者社区 问答 正文

为什么当输入空格或者是直接按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 2654 分享 版权
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
    赞同 展开评论
问答分类:
问答地址: