栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

String

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

String

String类

字符串是一个常量,创建之后不可改变

字符串字面值存储在字符串池中,可以共享

String s=“Hello”;产生一个对象

String s1=“hello”;

String s2=“hello”;

s1和s2地址一样

String s=new String(“Hello”);产生两个对象,堆、池各一个

String s1=new String(“Hello”);

String s2=new String(“Hello”);

s1和s2的地址不一样

public class StringStudy {
    public static void main(String[] args) {
        String name1="LiuXinyu";
    //"LiuXinyu"存储在字符串池中
        name1="刘心雨";
        //"刘心雨"赋值给name1,并没有修改"LiuXinyu",而是重新开辟一个空间指向name1
        String name2="LiuXinyu";
        //在字符串池中寻找"LiuXinyu",若有指向"LiuXinyu"
        String name3="刘心雨";
        //与name1指向同一个字符串 ,与name1地址一样
        String name4 = new String("刘心雨");
        //开辟一个新地址,与name1地址不一样9
        String name5 = new String("刘心雨");
        System.out.println(name1==name3);
        //true(地址一样 )
        System.out.println(name1==name4);
        //false(地址不一样 )
        System.out.println(name4==name5);
        //false(地址不一样 )
        System.out.println(name1.equals(name3));
        //true(内容一样)
        System.out.println(name1.equals(name4));
        //true(内容一样)
        System.out.println(name4.equals(name5));
        //true(内容一样)
    }
}

视频如下:https://www.bilibili.com/video/BV1vt4y197nY?p=20&spm_id_from=333.1007.top_right_bar_window_history.content.click

常用方法

public int length:返回字符串长度public char charAt(int index);根据下标获取字符public boolean contains(String str):判断当前字符串中是否包含str

public class StringLearn {
    public static void main(String[] args) {
        String name="Liuxinyu";
        System.out.println(name.length());
        //8(长度)
        System.out.println(name.charAt(2));
        //u(返回索引值)
        System.out.println(name.contains("xin"));
        //true(是否包含)
        System.out.println(name.contains("xia"));
        //false(不包含)
    }
}

public char[] toCharArray():将字符串转换成数组

public int indexOf(String str):查找str首次出现的下标,存在,返回该下标;不存在,返回-1

public int lastIndexOf(String str):查找字符串在当前字符串最后一次出现的下标索引

import java.util.Arrays;
public class StringLearn {
    public static void main(String[] args) {
        String name="LiuxinyuLiuxinyu";
        System.out.println(name.toCharArray());
        //LiuxinyuLiuxinyu
        System.out.println(Arrays.toString(name.toCharArray()));
        //[L, i, u, x, i, n, y, u, L, i, u, x, i, n, y, u]
        System.out.println(name.indexOf("xi"));
        //3(第一个字符的索引)
        System.out.println(name.lastIndexOf("xi"));
        //11(第一个字符的位置)

    }
}

public String trim():去掉字符串前后的空格public String toUpperCase():将小写转为大写public boolean endWith(String str):判断字符串是否以str结尾

public class StringLearn {
    public static void main(String[] args) {
        String name=" LiuxinyuLiuxinyu  ";
        System.out.println(name.trim());
        //LiuxinyuLiuxinyu
        System.out.println(name.toUpperCase());
        // LiuxinyuLiuxinyu
        System.out.println(name.endsWith("yu"));
        //false
        System.out.println(name.toLowerCase());
        // liuxinyuliuxinyu
    }
}

public String replace(char oldChar,char newChar):将旧字符替换成新字符

public String[] split(String str):根据str做拆分

public String concat(String str):将str连接在字符串后

public class StringLearn {
    public static void main(String[] args) {
        String name="Liu xin yu Liu xin yu";
        System.out.println(name.replace("Liu", "LIU"));//LIU xin yu LIU xin yu
        String[] arr=name.split(" ");
        String[] arr2=name.split("[Lx]");//用L或者x做分割
        for (int i=0;i< arr.length;i++) {//arr[0]Liu arr[1]xin arr[2]yu arr[3]Liu arr[4]xin arr[5]yu
            System.out.print("arr["+i+"]"+arr[i]+" ");
        }
        System.out.println();
        for (int i=0;i< arr2.length;i++) {//arr2[0] arr2[1]iu  arr2[2]in yu  arr2[3]iu  arr2[4]in yu 
            System.out.print("arr2["+i+"]"+arr2[i]+" ");
        }
        System.out.println();
        System.out.println(name.concat("beautiful"));//Liu xin yu Liu xin yubeautiful(连接)
    }
}

运行结果:

LIU xin yu LIU xin yu
arr[0]Liu arr[1]xin arr[2]yu arr[3]Liu arr[4]xin arr[5]yu 
arr2[0] arr2[1]iu  arr2[2]in yu  arr2[3]iu  arr2[4]in yu 
Liu xin yu Liu xin yubeautiful

s1.equals(s2):比较两个字符串内容是否相等s1.equalsIgnoreCase(s2):忽略大小写比较s1.compare(s2):先比较两个第一个,任何一次,比较两个大小,前面大为正.若前面大小一样,比较长度,前面长度减去后面长度

public class StringLearn {
    public static void main(String[] args) {
        String name1="ABCD";
        String name2="CBA";
        String name3="ABCD";
        String name4="abcd";
        System.out.println(name1.equals(name3));
        System.out.println(name1.equalsIgnoreCase(name4));
        System.out.println(name1.compareTo(name2));


    }
}

结果:

true
true
-2

subString(int beginindex,int endindex):截取字符串片段(开始到结束) 可变字符串

StringBuffer:可变长字符串,运行效率慢、线程安全

StringBuilder:可变长字符串,运行效率快、线程不安全

两者方法一样

public class StringBufferStudy {
    public static void main(String[] args) {
        StringBuffer sb=new StringBuffer();
        //append() 追加字符串(在后面加入字符串)
        sb.append("Liu");
        System.out.println(sb.toString());
        sb.append("xinyu");
        System.out.println(sb.toString());
        //insert()插入
        sb.insert(0,"刘心雨 ");
        System.out.println(sb.toString());
        sb.insert(sb.length()," 20岁");
        System.out.println(sb.toString());
        //replace()替换(可以指定位置替换)
        sb.replace(1,4,"Lily ");
        System.out.println(sb.toString());
        //delete()删除(指定位置)
        sb.delete(0,5);
        System.out.println(sb.toString());
    }
}

输出结果:

Liu
Liuxinyu
刘心雨 Liuxinyu
刘心雨 Liuxinyu 20岁
刘Lily Liuxinyu 20岁
刘 Liuxinyu 20岁

append() 追加字符串(在后面加入字符串)insert()插入replace()替换(可以指定位置替换)delete()删除(指定位置)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716449.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号