String类length()方法、equals()方法、其他比较方法及练习

这篇博客介绍了Java中String类的length()方法用于检查密码长度,确保用户注册时密码不少于6位。同时,讲解了equals()方法用于比较字符串内容是否完全一致,及其与'=='操作符的区别。还提到了equalsIgnoreCase()、toLowerCase()、toUpperCase()以及trim()等方法在字符串处理中的应用,并展示了如何在用户登录场景中实现用户名和密码的校验。最后,通过一个会员注册的实例展示了如何验证用户名和密码的输入格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String类提供了length()方法,确定字符串的长度

         返回字符串中的字符数

 * @Description//用户注册,密码长度不能小于6位
 * //字符串length()方法
 */
public class Register {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("请输入用户名");
        String name=input.next();
        System.out.println("请输入注册密码");
        String pwd=input.next();
        if (pwd.length()<6){
            System.out.println("注册密码不能小于6位");
        }else {
            System.out.println("注册成功");
        }
    }
}

String类提供了equals()方法,比较存储在两个字符串对象的内容是否完全一致

 * @Description//用户登录
 * //字符串equals()方法
 */
public class Login{
    public static void main(String[] args) {
//        Scanner input=new Scanner(System.in);
//        System.out.println("请输入用户名");
//        String name=input.next();
//        System.out.println("请输入注册密码");
//        String pwd=input.next();
//        //假设数据库中已经存储了用户注册成功的用户名TOM,密码1234567
//        if (name.equals("TOM")&&pwd.equals("1234567")){
//            System.out.println("登陆成功!");
//        }else {
//            System.out.println("用户名和密码不匹配,登录失败!");
//        }
        //以前学习过的比较方法:基本数据类型==值是否相等
//        int i=8;
//        int j=8;
//        System.out.println(i==j);

        //面试问题(字符串equals()和==的区别,字符串创建对象问题)
        //1.字符串比较的方法:equals()比较两个字符串的内容是否相同:--String类重写过该方法
        //==比较两个字符串内存地址是否相等,比较两个字符串是否为同一对象

        //2.字符串对象创建问题
        //如下代码创建了一个对象
//        String s1="hello";
//        String s2="hello";
//        System.out.println(s1.equals(s2));
//        System.out.println(s1==s2);//此时s1和s2都指向字符串池中的"hello"对象 true

        //如下代码创建了2个对象
//        String s1="hello";//此时s1指向字符串池中的"hello"对象
//        String s2=new String("hello");//此时s2指向堆中的"hello"对象
//        System.out.println(s1.equals(s2));//true
//        System.out.println(s1==s2);//false

        //如下代码创建了3个对象
//        String s1="hello";//此时s1指向字符串池中的"hello"对象
//        String s2=new String("Hello");//此时s2指向堆中的"Hello"对象,但是该行代码创建了两个对象,字符串池Hello,堆里的Hello
//        System.out.println(s1.equals(s2));//false
//        System.out.println(s1==s2);//false

        //如下代码创建了4个对象
        String s1=new String("hello");//此时s1指向堆中的"hello"对象,但是该行代码创建了两个对象,字符串池hello,堆里的hello
        String s2=new String("Hello");//此时s2指向堆中的"Hello"对象,但是该行代码创建了两个对象,字符串池Hello,堆里的Hello
        System.out.println(s1.equals(s2));//false
        System.out.println(s1==s2);//false
    }
}

使用equalsIgnoreCase()方法

使用toLowerCase()方法

使用toUpperCase()方法

去掉字符串两端空格的方法:trim()

方法一:使用"+"

方法二:使用String类的concat()方法

 * @Description//字符串其他方法:
 */
public class StrMethods {
    public static void main(String[] args) {
//        Scanner input=new Scanner(System.in);
//        System.out.println("请输入用户名");
//        String name=input.next();
//        System.out.println("请输入注册密码");
//        String pwd=input.next();
//        //假设数据库中已经存储了用户注册成功的用户名TOM,密码1234567
//        //要求用户名忽略大小写的三种方法(变大写)
//        //if (name.toUpperCase().equals("TOM".toUpperCase())&&pwd.equals("1234567")){
//        //等同于(变小写)
//        //if (name.toLowerCase().equals("TOM".toLowerCase())&&pwd.equals("1234567")){
//        //等同于(忽略大小写)
//        if (name.equalsIgnoreCase("TOM")&&pwd.equals("1234567")){
//            System.out.println("登陆成功!");
//        }else {
//            System.out.println("用户名和密码不匹配,登录失败!");
//        }
        //去掉字符串两端空格的方法:trim()
//        String name="    admin   ";
//        System.out.println(name.trim());

        //字符串连接
        String s1="hello";
        String s2="world!";
        System.out.println(s1+s2);//连接
        System.out.println(5+4);//加法
        System.out.println(5+"4");//连接
        System.out.println(s1.concat(s2));//连接
    }
}

代码演示

 * @Description//会员注册
 */
public class Register {
    //验证会员注册信息(用户名不能低于3位,密码不能低于6位,两次输入密码必须相同)
    public boolean verify(String name,String pwd1,String pwd2){
        boolean flag=false;//用户注册是否成功,成功true,反之false
        if (name.length()<3||pwd1.length()<6){
            System.out.println("用户名长度不能小于3,密码长度不能小于6!");
        }else if (!pwd1.equals(pwd2)){
            System.out.println("两次输入的密码不同!");
        }else {
            System.out.println("注册成功!请牢记用户名和密码!");
            flag=true;
        }
        return flag;
    }
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        String name,pwd1,pwd2;//用户名、密码、重复密码
        boolean flag;//用户注册是否成功
        System.out.println("*****欢迎进入注册系统*****");
        Register register=new Register();
        do {
            System.out.println("请输入用户名:");
            name=input.next();
            System.out.println("请输入注册密码:");
            pwd1=input.next();
            System.out.println("请再次重复密码:");
            pwd2=input.next();
            flag=register.verify(name,pwd1,pwd2);
        }while (!flag);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值