2 qq 31930741 qq_31930741 于 2016.04.16 21:26 提问

java 为什么登录这个功能判断不了用户名重复,求解,谢谢!

public void reg(String name,String password){
//添加管理员
if(list.isEmpty()){
list.add(new User("admin","123456"));
}
//把输入的用户名给user
for(int i=0;i<list.size();i++){
if(list.contains(name)){
System.out.println("此用户已被注册,请重新输入!");
System.out.println("请输入用户名:");
name=sc.next();
System.out.println("请输入密码:");
password=sc.next();
}
}
user.setName(name);
user.setPassword(password);//把用户输入的密码给user
list.add(user);
System.out.println("注册成功!!!");
System.out.println("您当前的注册的用户是:"+user);
System.out.println();

    每次添加重复的用户名都显示添加成功,这是为什么呢?麻烦大家了

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.16 21:29
已采纳
 因为你list是user类型的,contains比较的是引用。
Boolean eu = false;
for(int i=0;i<list.size();i++){
if (list[i].getName.equals(name)){
eu = true;
break;
}
}
if (eu)
System.out.println("此用户已被注册,请重新输入!");
caozhy
caozhy 如果你用的是arraylist的非泛型版本,需要一个类型转换((User)list[i]).getName()
大约 2 年之前 回复
qq_31930741
qq_31930741 刚刚我用你的方法那个list[i]报错,也出不来list[i].getName()
大约 2 年之前 回复
qq_31930741
qq_31930741 bl=false; //添加管理员 if(list.isEmpty()){ list.add(new User("admin","123456")); } Iterator<User> it=list.iterator(); while(it.hasNext()){ User u=it.next(); if(u.getName().equals(name)){ bl=true; } } if(bl){ System.out.println("此用户已被注册,请重新输入!"); } else{ user.setName(name); user.setPassword(password);//把用户输入的密码给user list.add(user); System.out.println("注册成功!!!"); System.out.println("您当前的注册的用户是:"+user); System.out.println(); } 我现在用的是这种方法
大约 2 年之前 回复
caozhy
caozhy 回复从容_: 是的,但是你list里面装的是user
大约 2 年之前 回复
qq_31930741
qq_31930741 回复caozhy: 我的list不是user类型的,list是一个集合
大约 2 年之前 回复
caozhy
caozhy if (list[i].getName().equals(name)){ 少了一个括号
大约 2 年之前 回复
CSDNXIAON
CSDNXIAON   2016.04.16 21:32

ThinkPHP——登录功能用户名密码判断
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
javaweb 判断用户是否重复登入
控制层代码: package com.wlsq.kso.web; import com.wlsq.kso.entity.AccountUser; import com.wlsq.kso.entity.Developer; import com.wlsq.kso.listener.SessionListener; import com.wlsq.kso.service.AccountUserSe
Java web工程判断用户是否重复登录
前几天,网上找了些朋友的资料,做了一个小功能,验证用户是否重复登录。 原理就是:每一个用户,登录前有一个验证,当第一次登录时,会把其session信息,添加到一个特定的静态变量中。当第二次登录时,验证到静态变量中存在该用户的信息,就表示为重复登录。 jsp代码,一个form表单提交: <form action="/struts2upload/system/login/reLogin.acti
java验证用户是否重复登录
验证用户是否重复登录 单点登录,和数据库没有关系,和struts也没有一毛钱的关系,只需要session和application就够了, 程序逻辑如下所示: 用户登录时,你这样写: Java code ? 1 2 3 4 5 User user = dao.login(userName, password
用户不可重复登录 java实现
总述 前些天,无意之间想到这个问题,感觉挺实用,有必要整理一下。随手写了一个简单的mode,感觉并不算难。思路理顺其实挺简单的。 为实现用户不可同时登陆,只要想想现实中新浪,百度等,只要一处登陆就将另一处的给“挤”下去,就可以知道实现结果为何。然后再逆推之,即可形成较为清晰的思路。我们一起来探讨一下。 首先,我们得明白用户登录使用什么登陆的,即用户在线的原理。这只是将用户的对象存放在了ses
web-前端之可移动的登录界面,并且可实现用户名重复的判断等表单事件
这个是实现在界面中可移动的登录界面,也可以说是注册界面,反正二者只是变换一下里面的基本内容而已,可以自己修改一下 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> function mySub(){
Java实现用户注册 判断是否重复,写到文件中
Java实现用户注册 判断是否重复,写到文件中去,把Java的相关基本的类都综合用到了,是对基本知识的一个检查和综合应用,同时也是用了文件流的技术,代码简洁易懂!
JDBC编程作业--登陆界面的实现(检测数据库中是否有用户名,并且可以注册用户)!
package 数据库; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import
用ajax实现检测注册用户名是否重复的完整例子(一)
网上搜索了很多案例,但都和自己的需求不一样。  最终实现了下面的例子实现了对注册用户名的校验。采用的架构是servelet+jsp.  JSP页面代码:  Html代码   form action="register.do?action=add" onsubmit="return submessage(this)" method="post" name="form1">
Java+Ajax实现用户名重复检验
今天,我来教大家怎么实现Java+Ajax实现用户名重复检验。
【web开发】:利用AJAX查询判断用户名是否重复
来源在项目中我们在输入界面会遇到这样的问题,我们要输入的数据尤其是主键不能与数据库里面的数据重复,因此我们需要ajax查询来跟数据库里面的数据比对,进而可以知道该数据是否重复举个很简单的例子,比如说是 用户ID,用户ID是唯一的,所以不能重复,下一个例子我们就关于用户ID的AJAX查询的详细过程详细过程JSP页面提交AJAX查询请求, controller层提供相关数据的比对,然后返回比对值给JSP