【JAVA学习字符串】笔记

字符串的一些基础知识
在这里插入图片描述
学习过的API
Scanner
Random

String概述

在这里插入图片描述
在这里插入图片描述
演示

        //1.使用直接赋值的方式获取一个字符串对象(使用最多)
        String s1 = "abc";
        System.out.println(s1);//abc


        //2.使用new的方式来获取一个字符串对象
        //空参构造:可以获取一个空白的字符串对象
        String s2 = new String();
        System.out.println("@" + s2 + "!");//""

        //传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象
        String s3 = new String("abc");
        System.out.println(s3);

        //传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
        //需求:我要修改字符串的内容。  abc  Qbc
        //abc -->  {'a','b','c'}  -->  {'Q','b','c'} --> "Qbc"
        char[] chs = {
    
    'a', 'b', 'c', 'd'};
        String s4 = new String(chs);
        System.out.println(s4);//abcd

        //传递一个字节数组,根据字节数组的内容再创建一个新的字符串对象
        //应用场景:以后在网络当中传输的数据其实都是字节信息
        //我们一般要把字节信息进行转换,转成字符串,此时就要用到这个构造了。
        byte[] bytes = {
    
    97, 98, 99, 100};
        String s5 = new String(bytes);
        System.out.println(s5);//abcd

在这里插入图片描述
在这里插入图片描述

字符串的比较

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码

        //1.创建两个字符串对象
        String s1 = new String("abc");
        String s2 = "Abc";

        //2.==号比较
        //基本数据类型:比的是数据值
        //引用数据类型:比的是地址值
        System.out.println(s1 == s2);//false


        //3.比较字符串对象中的内容是否相等
        boolean result1 = s1.equals(s2);
        System.out.println(result1);

        //4.比较字符串对象中的内容是否相等,忽略大小写
        //1 一 壹 这不行
        //忽略大小写只能是英文状态下的a A
        boolean result2 = s1.equalsIgnoreCase(s2);
        System.out.println(result2);//true

键入的字符串和代码中定义的字符串不一样

public static void main(String[] args) {
    
    
        //1.假设我现在键盘录入一个abc
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str1 = sc.next();//abc  是new出来的。
        //2.代码中再定义一个字符串abc
        String str2 = "abc";
        //3.用==比较,这两者能一样吗?
        System.out.println(str1 == str2);//false

        //结论:
        //以后只要想比较字符串的内容,就必须要用String里面的方法

截图软件叫Snipaste

练习用户登录

用一个账户去登陆,不能登录超过3次

//
        String rightUsername = "zhangsan";
        String rightPassword = "123456";

        Scanner sc = new Scanner(System.in);


        for (int i = 0; i < 3; i++) {
    
    
            System.out.println("请输入用户名");
            String username = sc.next();
            System.out.println("请输入密码");
            String password = sc.next();

            if (username.equals(rightUsername) && password.equals(rightPassword)){
    
    
                System.out.println("成功登录");
                break;

            }else {
    
    
                if (i == 2){
    
    
                    System.out.println("账号"+username+"已被锁定");
                }else {
    
    
                    System.out.println("用户登录失败,用户名或密码有误,您还剩" + (2-i) + "次机会");
                }

            }

        }

StringBuilder

StringBuilder可以看作是一个容器,创建之后里面说的内容是可变的
作用:提高字符串的操作效率
使用StringBuilder的场景
//1.字符串的拼接
//2.字符串的反转
在这里插入图片描述
在这里插入图片描述
前三种方法演示

        //1.创建对象
        StringBuilder sb = new StringBuilder();

        //2.添加元素
        sb.append(1);
        sb.append(3.4);
        sb.append(true);

        //反转
        sb.reverse();

        //获取长度
        int len = sb.length();
        System.out.println(len);

        //打印
        //普及:
        //因为StringBuilder是Java已经写好的类
        //java在底层对他做了一些特殊处理。
        //打印对象不是地址值而是属性值。
        System.out.println(sb);

运行结果
在这里插入图片描述
tostring()演示

        //1.创建对象
        StringBuilder sb = new StringBuilder();

        //2.添加字符串
        sb.append("aaa");
        sb.append("zzz");
        sb.append("fff");
        sb.append("hhh");

        System.out.println(sb);//只是容器内的排列顺序,不是字符串

        //3.再把StringBuilder变回字符串
        String str = sb.toString();
        System.out.println(str);

运行结果
在这里插入图片描述

链式编程

        //1.创建对象
        StringBuilder sb = new StringBuilder();

        /*//2.添加字符串
        sb.append("aaa");
        sb.append("zzz");
        sb.append("fff");
        sb.append("hhh");*/

        //链式编程
        sb.append("aaa").append("zzz").append("fff").append("hhh");

        System.out.println(sb);//只是容器内的排列顺序,不是字符串

        //3.再把StringBuilder变回字符串
        String str = sb.toString();
        System.out.println(str);

运行结果和上次一样

扫描二维码关注公众号,回复: 16570853 查看本文章

练习:
判断输入的字符串是否对称

        //1.键入字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
        //2.反转字符串
        //借助StringBuilder中的reverse进行反转
        StringBuilder sb = new StringBuilder();//=右边为创建对象,赋值给sb
        sb.append(str);
        sb.reverse();
        String res = sb.toString();

        System.out.println(sb);


        //也可写做
        //String res = new StringBuilder().append(str).reverse().toString();

        //3.比较
        if (str.equals(res)){
    
    
            System.out.println("该字符串是对称字符串");
        }else {
    
    
            System.out.println("该字符串不是对称字符串");
        }

运行结果
不对称
在这里插入图片描述
对称
在这里插入图片描述

StringJoiner

在这里插入图片描述
在这里插入图片描述
这里注意StringJoiner没有空参构造
在这里插入图片描述
实例

        //1.创建对象
        StringJoiner sj = new StringJoiner("~~~","{","}");

        //2.添加元素
        sj.add("zzz").add("fff").add("hhh");

        int len = sj.length();
        System.out.println(len);

        //3.打印
        System.out.println(sj);

        String str = sj.toString();
        System.out.println(str);

结果
在这里插入图片描述
在这里插入图片描述

TIPS

ctrl+alt+T:可以选择一个函数去包裹被选中的代码
ctrl+shift+/:块注释
ctrl+/:行注释
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Luohuasheng_/article/details/131697521
今日推荐