• 51.【Java String方法的小结】


    1.String

    1.概述:java.util.String.包中。使用的时候不需要导包
    2.Java 程序中的所有字符串文字.如(sdsdsffsd)。都被视为此类的对象
    3.字符串不可改变,他们的值在创建后不能进行改变.

    1.1创建String 对象的两种方式:

    1.直接赋值;
    2.使用new进行创建

    public class hello {
        public static void main(String[] avgs) {
            //直接赋值
        String s="我是小明";
        System.out.println("使用直接赋值的方式打印出来的数组是:"+s);
        //设置为空的字符串
        String s2=new String();
        System.out.println("1"+s2+"2");
        //设置有参数的字符串
        String s3=new String("hello world");
        System.out.println("脱裤子放屁赋值字符串:"+s3);
        //通过字符数组进行进行创建一个新的字符串对象
            char []arr=new char[]{'a','b','c'};   //主要运用与修改
            String s4=new String(arr);
            System.out.println(s4);
            //传递以恶搞字节数组,根据字节数组的内存在创建一个新的字符串的对象
            byte []s5=new byte[]{97,98,99,100};  //相当与ascll码
            String s6=new String(s5);
            System.out.println(s6);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    2.内存图

    在这里插入图片描述

    当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在.
    不存在:创建新的
    存在:复用

    在这里插入图片描述

    3.字符串的比较:

    3.1使用非函数

    ==号的基本原理:

    A:基本数据类型:

    > int a=10; int b=20; System.out.println(a==b); / /fslae    比较的时数值
    
    • 1

    B:引用数据类型:

    两个new出来的 (假)

    String s1=new String("abc");
    String s2=new String("abc");
    System.out.println(s1==s2);  //false 比较的是地址值,不是数值.
    
    • 1
    • 2
    • 3

    直接赋值出来的 (真)

    String s1=”abc“;
    String s2="abc";
    System.out.println(s1==s2);     //true  会调用复用
    
    • 1
    • 2
    • 3

    直接赋值和new出来的比较 (假)

    String s1=”abc“;
    String s2=new String("abc");
    System.out.println(s1==s2);  //false ,放的地址都不一样
    
    • 1
    • 2
    • 3

    两个键盘录入的 (假)

    import java.util.*;
    public class hello {
        public static void main(String[] avgs) {
        Scanner sc=new Scanner(System.in);
        String s=sc.next();
        String s1=sc.next();
        System.out.println(s==s1);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    3.2运用函数进行比较

    boolean 数据类型 = 字符串名. eauals(s2); //这个区分大小写

    两个直接赋值的字符串 (真)

    
    public class hello {
        public static void main(String[] avgs) {
         String s="abcd123";
         String s1="abcd123";
         String s2="ABCD123";
         boolean result =s.equals(s1);          //不可以忽略大小写
        System.out.println(result);
        boolean flag =s.equals(s2);
            System.out.println(flag);
            boolean flag1=s.equalsIgnoreCase(s2);   //可以忽略大小写
            System.out.println(flag1);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    键盘录入的字符串是new出来的和直接赋值的 (真)

    import java.util.*;
    public class hello {
        public static void main(String[] avgs) {
        Scanner sc=new Scanner(System.in);
        String s="abc";
        String s1=sc.next();
        boolean flag=s.equals(s1);
        System.out.println(flag);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    两个键盘输入的进行比较 (true)

    import java.util.*;
    public class hello {
        public static void main(String[] avgs) {
        Scanner sc=new Scanner(System.in);
        String s=sc.next();
        String s1=sc.next();
        boolean flag=s.equals(s1);
        System.out.println(flag);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    3.3运用函数判断相等与否的实列

    密码用户登入信息

    import java.util.*;
    public class hello {
        public static void main(String[] avgs) {
        Scanner sc=new Scanner(System.in);
        String username="liming";
        String userPassword="121788";
        int count=3;
            while (count>0) {
                count--;
                System.out.println("请输入您的用户名:");
                String username1=sc.next();
                System.out.println("请输入您的用户密码:");
                String  userpassword=sc.next();
                if(username1.equals(username)&&userpassword.equals(userPassword)) {
                    System.out.println("登入成功!!!!!");
                    break;
                }
                else {
                    System.out.println("登入失败,您还有"+(count)+"次机会");
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这里插入图片描述

    2.字符串的索引

    1.基本格式:

    Scanner sc=new Scanner(Sytsem.in);
    String s;
    s=sc.next();
    for(int i=0;i<s.length();i++)
    {
    	s.charAt(i);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    求小写字母,大写字母,数字的个数

    import java.util.*;
    public class hello {
        public static void main(String[] avgs) {
         System.out.println("请输入您的字符串");
         Scanner sc=new Scanner(System.in);
         String s;
         s=sc.next();
         int small=0;
         int big=0;
         int math=0;
            System.out.println(s);
         for(int i=0;i<s.length();i++){
    
             if(s.charAt(i)>='a'&&s.charAt(i)<='z')
             {
                 small++;
             }
             if(s.charAt(i)>='A'&&s.charAt(i)<='Z')
             {
                 big++;
             }
             if(s.charAt(i)>'0'&&s.charAt(i)<'9')
             {
                 math++;
             }
         }
         System.out.println("数字有:"+math);
         System.out.println("小写数量为:"+small);
         System.out.println("大写数字为:"+big);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    2.基本操作和算法:

    import java.util.*;
    public class hello {
        public static void main(String[] avgs) {
            int arr[]=new int[3];
            toString(arr);
        }
        public static void toString(int []arr)
        {
            //长度为0的意思是 int []a=new int[0];  数组为空的意思是指:   int []a=new int[]{};
            if(arr==null)//判断数组是否为空
            {
                System.out.println("");   //返回一个长度为0的"“
            }
            if(arr.length==0)//判断数组的长度是否为0
            {
                System.out.println("[]");
            }
            System.out.print("[");
            for(int i=0;i<arr.length;i++)
            {
                if(i<arr.length-1){
                    System.out.print(arr[i]+",");
                }
            else {
                System.out.print(arr[i]);
                }
            }
            System.out.print("]");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    3.手机号的加密:(字符串截取)

    基本格式:

    s.substring(a,b);  //截取字符串s从a到b,但包括a不包括b;
    s.substring(c);  //截取从c索引开始到末尾的所有元素
    
    • 1
    • 2
    import java.sql.SQLOutput;
    import java.util.*;
    import java.awt.*;
    public class hello {
        public static void main(String []avgs) {
            String s="16639058447";
            String s1=s.substring(0,3);
            String s2=s.substring(7);
            String result=s1+"****"+s2;
            System.out.println(result);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    4.拼接字符串StringBulider()容器

    定义:

    SringBuilder sb=new StringBulider()  
    
    • 1

    添加字符串:

    sb.append(a);
    
    • 1

    获取长度:

    sb.length()
    
    • 1

    转换成字符串

    sb.toString();
    
    • 1

    倒序

    sb.reveser();
    
    • 1

    展示:

    public class SquenceListTest {
        public static void main(String []avgs) {
            StringBuilder sb=new StringBuilder("傻瓜");  //创建对象
            sb.append(1);   //进行添加
            sb.append(1.2);
            sb.append(true);
            sb.reverse();   //进行翻转输出
            System.out.println(sb);
            int length=sb.length();    //计算合并后的长度
            System.out.println(length);
            String s=sb.toString();   //把容器转换成字符串
            System.out.println(s);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    4.1举列子:

    public class SquenceListTest {
        public static void main(String []avgs) {
            int []arr=new int[]{1,2,3};
           String s=arrTo(arr);
            System.out.println(s);
        }
        public static String arrTo(int []arr){
            StringBuilder sb=new StringBuilder();
            System.out.print("[");
            for(int i=0;i<arr.length;i++){
                if(i==arr.length-1){
                    sb.append(arr[i]).append("]");
                }else{
                    sb.append(arr[i]).append(",");
                }
            }
            String s=sb.toString();
            return s;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    5.新时代拼接符号StringJoiner()

    基本格式:

    StringJoiner(间隔符号)
    
    • 1

    代码展示:

    StringJoiner(“间隔符号”,"开始符号","结束符号")
    
    • 1
    import java.sql.SQLOutput;
    import java.util.*;
    import java.awt.*;
    public class hello {
        public static void main(String []avgs) {
        StringJoiner sj=new StringJoiner(",","[","]");
        sj.add("aaa").add("bbb").add("ccc");
            System.out.println(sj);
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    添加(只能是字符串)

    sj.add();
    
    • 1

    代码展示:

    import java.sql.SQLOutput;
    import java.util.*;
    import java.awt.*;
    public class hello {
        public static void main(String []avgs) {
        StringJoiner sj=new StringJoiner("---");
        sj.add("aaa").add("bbb").add("ccc");
            System.out.println(sj);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    长度:

    sj.length();
    
    • 1
    import java.sql.SQLOutput;
    import java.util.*;
    import java.awt.*;
    public class hello {
        public static void main(String []avgs) {
        StringJoiner sj=new StringJoiner(",","[","]");
        sj.add("aaa").add("bbb").add("ccc");
            System.out.println(sj);
            System.out.println(sj.length());
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    转换成字符串:

    import java.sql.SQLOutput;
    import java.util.*;
    import java.awt.*;
    public class hello {
        public static void main(String []avgs) {
        StringJoiner sj=new StringJoiner(",","[","]");
        sj.add("aaa").add("bbb").add("ccc");
            System.out.println(sj);
            System.out.println(sj.length());
            String str=sj.toString();
            System.out.println(str);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    6.字符串转换成字符的操作(toCharArray)

    基本格式:

    s.tocharArray();
    
    • 1

    代码展示:

    import java.sql.SQLOutput;
    import java.util.*;
    import java.awt.*;
    public class hello {
        public static void main(String []avgs) {
            Scanner sc = new Scanner(System.in);
            String str = sc.next();
            char []arr=str.toCharArray();
            int  c=arr[0]-32;
            System.out.println((char)c);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    6.综合演练

    假如说一个字符串为"abcd",进行旋转一次变成dabc,第二次cdab…
    判断是否这两个字符串是否会在n此旋转后回想等,如果相等,那么就返回true,否则返回else.

    import java.sql.SQLOutput;
    import java.util.*;
    import java.awt.*;
    public class hello {
        public static void main(String []avgs) {
        Scanner sc=new Scanner(System.in);
        String str=sc.next();
            System.out.println(JudgeEqual(str));
        }
        public static boolean JudgeEqual(String s){  //判断是否相等
            StringBuilder sb=new StringBuilder();
            sb.append(s);
            sb.reverse();
            String st=sb.toString();
            for(int i=0;i<s.length();i++){
                String str=reverse(s);
                if(str.equals(st)){
                    return true;
                }
            }
            return false;
        }
        public static String reverse(String s){  //进行截取字符
            String start=s.substring(0,1);
            String end=s.substring(1);
            String str=end+start;
            return  str;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    iNFTnews | NFT在门票领域会有哪些作用?
    这一刻,听见华为FTTR的星光四重奏
    个人千元奖励!华秋PCB多层板设计挑战赛等您参与
    如何建立自己的微信小程序,做一个微信小程序大概多少钱?
    C高级day4(shell脚本)
    SpringCache--缓存框架 ----苍穹外卖day7
    HTTP协议中的HTTP报文
    python可视化分析(六)-绘制发散型柱状图
    mybatis笔记 映射配置文件
    每日一题 2511. 最多可以摧毁的敌人城堡数目
  • 原文地址:https://blog.csdn.net/qq_69683957/article/details/126570342