字符串介绍

String

package com.ithema;
import java.util.Random;
public class StringDemo01 {
    public static void main(String[] args) {
        //1.使用直接赋值的方式获取一个字符串对象
        String s1="abc";
        System.out.println(s1);
        //2.使用new的方式来获取一个字符串对象
        //空参构造:可以获取一个空白字符串对象
        String s2=new String();
        System.out.println('*'+s2+'!');
        //传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象
        String s3=new String("abc");
        System.out.println(s3);
        //传递一个字符数组,根据字符数组的内容再创建一个新的字符串对象
        //需求:我们修改字符串的内容  abc Qbc
        char []arr={'a','b','c'};
        String s4=new String(arr);
        System.out.println(s4);
       //传递一个字节数组,根据字节数组的内容再创建一个新的字符串对象
        byte []bytes={97,98,99};
        String s5=new String(bytes);
        System.out.println(s5);

    }
}

引用数据类型 s1!=s2 因为new开辟不同的空间

字符串拼接

package com.ithehema;

import java.util.Scanner;

public class StringDemo06 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        String str = reverse2(s);
        System.out.println(str);
    }
    public static String reverse2(String str) {
     String result="";
     for(int i=str.length()-1;i>=0;i--){
         char ch = str.charAt(i);
         result+=ch;
     }
     return result;
    }
    public static String reverse1(String str) {
        char[] charArray = str.toCharArray();
        int left = 0;
        int right = str.length() - 1;
        while (left < right) {
            char tmp = charArray[left];
            charArray[left] = charArray[right];
            charArray[right] = tmp;
            left++;
            right--;
        }
        return new String(charArray);
    }
}

package com.ithehema;
public class Test3 {
    public static void main(String[] args) {
        String Phone_number = "15572193955";
        //1.截取3位
        String start = Phone_number.substring(0, 3);
        //2.截取后4位
        String end = Phone_number.substring(7);
        //3.拼接
        String ret=start+"****"+end;
        //4.打印
        System.out.println(ret);
    }
}

substring()

包头不包尾

public class StringDemo09 {
    public static void main(String[] args) {
        //1.定义一个变量表示骂人的话
        String talk = "后裔你玩什么啊,TMD,GDX";
        //2.定义一个数组用来存多个敏感词
        String []arr={"TMD","GDX","ctmd","ZZ","lj","FW","nt"};
        for(int i=0;i<arr.length;i++){
            talk=talk.replace(arr[i],"***");
        }
        System.out.println(talk);
    }
}

StringBulider

链式编程

当我们在调用一个方法时,不需要用变量接收他的结果,可以继续调用其他的方法

package ithehma;

import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
        //1.录入字符串
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        //2.反转字符串
        String result =new StringBuilder().append(str).reverse().toString();
        //3.比较
       if(str.equals(result)){
           System.out.println("yes");
       }else{
           System.out.println("no");
       }
    }
}

StringJoiner

package StringJoiner;

import java.util.StringJoiner;

public class StringJoinerdemo1 {
    public static void main(String[] args) {
        //1.创建一个对象,并指定中间的间隔符号
        StringJoiner sj = new StringJoiner("---");

        //2.添加元素
        sj.add("aaa").add("bbb").add("ccc").add("ddd");
        //3.打印结果
        System.out.println(sj.toString());
    }
}

总结

至少会创建4个对象new(容器) 也就是StringBulider

字符串拼接的时候如果有变量参与 ,则拼接的底层其实是在容器里的.
字符串拼接的时候如果没有变量参与,则拼接的底层其实是在串池里的

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值