关于String类的一些个人小总结

String类

概述

字符串是由多个字符组成的一串数据(字符序列)的字符串常量,值改变后会重新创建一个新的对象

有两种创建形式:

String s = "abc";
//创建对象时,先在常量池检测是否有相同的值,若没有,就在堆中创建一个字符串对象
//值在常量池中,第二次创建对象时,若常量池已存在值,则直接让引用变量指向第一个
//字符串对象
//特点:JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象
String s = new String("abc ");
//一概在堆中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象

构造方法

构造方法:
public String()
public String(String string)
public String(byte[] bytes)
public String(char[] value)

public class StringDemo1 {
    public static void main(String[] args) throws UnsupportedEncodingException {
        /*
         构造方法
         public String()
         public String(String string)
         public String(byte[] bytes)
         public String(char[] value)
        */
        String s=new String();//创建String对象,值是" "
        String s1=new String("abc");//使用指定的值value

        String s2="abc";
        byte []b=s2.getBytes();//字符串转byte数组
        System.out.println(Arrays.toString(b));

        char []c1={'a','b','c'};
        String s3=new String(c1,0,2);//数组名  开始位置  元素个数
        byte []b1=s3.getBytes("utf-8");//使指定编码将字符串转换为数组
        System.out.println(Arrays.toString(b1));
    }
}

判断功能

判断功能

​ boolean equals(Object obj)
​ boolean equalsIgnoreCase(String str)
​ boolean contains(String str)
​ boolean isEmpty()
​ boolean startsWith(String prefix)
​ boolean endsWith(String suffix)

public class StringDemo2 {
    /*
    判断功能
      boolean equals(Object obj)
      boolean equalsIgnoreCase(String str)
      boolean contains(String str)
      boolean isEmpty()
      boolean startsWith(String prefix)
      boolean endsWith(String suffix)
    */
    public static void main(String[] args) {
        String s1="abc";
        String s2=new String("abc");
        String s3=new String("abC");

        System.out.println(s1.equals(s2));//判断字符串内容是否相同
        System.out.println(s1.equalsIgnoreCase(s3));//判断字符串内容是否相同 不区分大小写
        System.out.println(s1.contains("a"));//判断字符串是否包含内容a
        System.out.println(s1.contains("ab"));
        System.out.println(s1.isEmpty());//判断字符串是否为空
        System.out.println("".isEmpty());//""和null不一样
        System.out.println(s1.startsWith("ab"));//判断字符串是否以ab开头
        System.out.println(s1.endsWith("c"));//判断字符串是否以c结尾
    }
}

获取功能

获取功能

​ int length()
​ char charAt(int index)
​ int indexOf(String str)
​ int indexOf(String str,int fromIndex)
​ String substring(int start)
​ String substring(int start,int end)

public class StringDemo3 {
    /*
    获取功能
    int length()
    char charAt(int index)
    int indexOf(String str)
    int indexOf(String str,int fromIndex)
    String substring(int start)
    String substring(int start,int end)
     */
    public static void main(String[] args) {
        String s="abcdefghcs";
                //0123456789
        System.out.println(s.length());//获取字符串长度
        System.out.println(s.charAt(3));//获取第三个索引位置的字符
        System.out.println(s.indexOf("c"));//返回指定字符在此字符串中第一次出现处的索引
        System.out.println(s.indexOf("c",s.indexOf("c")+1));//返回指定字符在此字符串中第二次出现处的索引
        System.out.println(s.substring(3));//返回一个新的字符串,它是此字符串的一个子字符串
        System.out.println(s.substring(3,7));//返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的3处开始,
                                            // 直到索引7处的字符。因此,该子字符串的长度为7-3。
    }
}

转换功能

转换功能
byte[] getBytes()
char[] toCharArray()
static String valueOf(char[] chs)
String toLowerCase()
String toUpperCase()
String concat(String str)
Stirng[] split(分割符)

import java.util.Arrays;

public class StringDemo4 {
    /*
    转换功能
    byte[] getBytes()
    char[] toCharArray()
    static String valueOf(char[] chs)
    String toLowerCase()
    String toUpperCase()
    String concat(String str)
    Stirng[] split(分割符)
    */
    public static void main(String[] args) {

        String s = "abcdEFG";
        byte[] b = s.getBytes();//将 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中
        System.out.println(Arrays.toString(b));
        char[] c = s.toCharArray();
        System.out.println(Arrays.toString(c));//将此字符串转换为一个新的字符数组
        System.out.println(s.toLowerCase());//将字符串中的字符全都变为小写
        System.out.println(s.toUpperCase());//将字符串中的字符全都变为大写
        System.out.println(s.concat("xxxx"));//将指定字符串连接到此字符串的结尾
        String s1 = "a:A:da:cs:sds";
        String[] s2 = s1.split(":");//根据给定正则表达式的匹配拆分此字符串
        System.out.println(Arrays.toString(s2));

        /*
        替换功能
        String replace(char old,char new)
        String replace(String old,String new)
        replaceAll(String regex, String replacement)
        replaceFirst(String regex, String replacement)
        */
        String a="abcdefg";
        String d="a:xs:w";
        System.out.println(a.replace("a", "zz"));
        //返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
        System.out.println(a.replace("a", "z"));
        System.out.println(d.replaceAll(":", "c"));
        //使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
        System.out.println(d.replaceFirst(":", "z"));
        //使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串
    }
}

替换功能

替换功能
String replace(char old,char new)
String replace(String old,String new)
replaceAll(String regex, String replacement)
replaceFirst(String regex, String replacement)


import java.util.Arrays;

public class StringDemo4 {
    public static void main(String[] args) {
        /*
        替换功能
        String replace(char old,char new)
        String replace(String old,String new)
        replaceAll(String regex, String replacement)
        replaceFirst(String regex, String replacement)
        */
        String a="abcdefg";
        String d="a:xs:w";
        System.out.println(a.replace("a", "zz"));
        //返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
        System.out.println(a.replace("a", "z"));
        System.out.println(d.replaceAll(":", "c"));
        //使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串
        System.out.println(d.replaceFirst(":", "z"));
        //使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值