[JAVA 학습 문자열] 참고사항

문자열에 대한 몇 가지 기본 지식
여기에 이미지 설명을 삽입하세요.
학습된 API
스캐너
무작위

문자열 개요

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
데모

        //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 사용 시나리오 :
//1. 문자열 연결
//2. 문자열 반전
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
Top three 메서드 시연

        //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);

실행결과는 지난번과 같습니다.

연습:
입력 문자열이 대칭인지 확인

        //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는 빈 매개변수를 사용하여 인스턴스를 생성하지 않는다는 점에 유의하세요 .

        //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);

결과
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

ctrl+alt+T: 선택한 코드를 래핑하는 기능을 선택할 수 있습니다.
ctrl+shift+/: 주석 차단
ctrl+/: 줄 주석
여기에 이미지 설명을 삽입하세요.

추천

출처blog.csdn.net/Luohuasheng_/article/details/131697521