String类的常用方法总结,Cs挽周带你玩转String类(图文总结超详细) !

Posted 孟挽周

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String类的常用方法总结,Cs挽周带你玩转String类(图文总结超详细) !相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

String

String类是不可改变的,所以你一旦创建了String对象,那它的值就无法改变了。 如果需要对字符串做很多修改,那么应该选择使用StringBuffer & StringBuilder类。

这句话的理解:

  • Java中字符串类型String是不允许改变其内容的,那么请问简要谈谈下列语句是如何运行的:String s=new String(“ABC”); s=s+“abc”;
  • 确实,Java中的String类型确实是不允许改变其内容的,String类型的对象一旦建立,将在堆内存当中占据一个固定的内存空间,String类型的对象无法改变。但是你在运算的时候又发现,你定义的String类型的s变量又是可以进行连接的,如"abc"+“def"最终得到的s的值是"abcdef”,这似乎看着String类型的对象又是可以改变的,这是自相矛盾吗?其实,String对象不允许改变内容是正确的,但是可以改变定义的String类型的变量指向,你定义的String s其实是一个指向String对象的指针,如果不存在对象就为null。如果你定义了:String s=“abc”;那么将创建一个内容为"abc"的String对象,并且s指向这个对象。一旦s=s+“abc”;这样的操作,那么将创建一个新的String对象来存放新的内容,原先的对象依旧在内存中,但是s不在指向它,那么这个对象就会成为垃圾内存,在某一个特定的时刻有Java虚拟机回收。如果希望存放的String可以调整大小,而不是创建新的内存来存放新的对象,可以使用StringBuffer这个类来存放。这个内存可以调整大小。而不会抛弃。

实例:

	public static void main(String[] args) {
		String s=new String("ABC");	s=s+"abc";
		System.out.println(s);
	}

在这里插入图片描述


在此我为大家列出了一个大纲,通过大纲和目录,可以快速定位到想要使用的方法。在这里插入图片描述

方法说明
int length()返回当前字符串长度
char charAt( int index)获取字符串中指定位置的字符
char toCharArray()将字符串转为 char 数组类型。
int indexOf( int ch)查找ch字符在该字符串中第一次出现的位置
String.lastIndexOf(String str)得到str最后一次出现的位置
toUpperCase(),toLowerCase()字符串大小写转换
String[ ] split(String regex ,int limit)去除字符串中指定的的字符,然后返回一个新的字符串
boolean equals(Object anObject)字符串比较
String trim()去除字符串两端空格
String replace(char oldChar,char newChar)字符串替换
String substring(int beginIndex,int endIndex)截取字符串
boolean equalsIgnoreCase(String str)忽略大小写对字符串进行比较
boolean contains(String str)判断一个字符串里面是否包含指定的内容
boolean startsWith(String str)是否以指定的前缀开始
boolean endsWith(String str)是否以指定的后缀结束
String replaceAll(String str1,String str2)将某个内容全部替换成指定内容
String repalceFirst(String str1,String str2)将第一次出现的某个内容替换成指定的内容
String concat(String str)在原有的字符串的基础上加上指定字符串
boolean isEmpty()非空判断


int length()

  • 语法: 字符串变量名.length();
  • 说明: 返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.print(test.length());
    }
  • 结果:
    在这里插入图片描述

char charAt( int index)

  • 语法: 字符串名.charAt(值);
  • 说明: 返回值为 char 类型。从字符串中取出指定位置的字符
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.print("指定字符为:"+test.charAt(4));
    }
  • 结果:
    在这里插入图片描述

char toCharArray()

  • 语法: 字符串名.toCharArray();
  • 说明: 返回值为 char 数组类型。将字符串变成一个字符数组
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        char[] chars = test.toCharArray();
        for (int i=0;i<chars.length;i++){
            System.out.println(chars[i]);
        }
    }
  • 结果:
    在这里插入图片描述

int indexOf( int ch)

  • 语法 : 字符串名.indexOf("字符");字符串名.indexOf("字符",值);
  • 1个入参,说明: 查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。
  • 2个入参,说明 : 从指定位置开始查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。
  • 示例:
  	// 1
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.indexOf("位"));
    }
	// 2
	public static void main(String[] args) {
        //查找一个字符是否存在,存在返回下标,不存在返回 -1
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.indexOf("@",19));
    }
  • 结果:

在这里插入图片描述
在这里插入图片描述


String.lastIndexOf(String str)

  • 语法: 字符串名.lastIndexOf("字符")
  • 说明: 得到指定内容最后一次出现的下标。
  • 示例:
    public static void main(String[] args) {
        //查找一个字符是否存在,存在返回下标,不存在返回 -1
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.lastIndexOf("@"));
    }	
  • 结果:

在这里插入图片描述


toUpperCase(),toLowerCase()

  • 语法: 字符串名.toUpperCase()字符串名.toLowerCase()
  • 说明: 字符串大小写的转换
  • 示例:
    public static void main(String[] args) {
        String str="hello world";
        System.out.println("将字符串转大写为:" + str.toUpperCase());
        System.out.println("将字符串转换成小写为:" + str.toUpperCase().toLowerCase());
    }
  • 结果:
    在这里插入图片描述

String[ ] split(String regex ,int limit)

  • 语法: String[] split("字符") String[] split(String regex ,int limit)
  • String[] split("字符") 说明: 根据给定的正则表达式的匹配来拆分此字符串。
  • String[] split(String regex ,int limit)说明: 若limit参数大于等于这个length或limit参数为非正数,则字符串以regex方式进行最大split;若limit参数处于0和length之间,则字符串以regex方式进行limit - 1次split,split后剩下的字符不会再进行split。
  • 示例:
    // String[] split("字符")
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        String[] split = test.split("@");
        for (int i =0;i<split.length;i++){
            System.out.println(split[i]);
        }
    }
	//String[] split(String regex ,int limit)
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        String[] split = test.split("@",2);
        for (int i =0;i<split.length;i++){
            System.out.println(split[i]);
        }
    }
  • 结果:

在这里插入图片描述
在这里插入图片描述


boolean equals(Object anObject)

  • 语法: 字符串变量名.wquals(字符串变量名);
  • 说明: 比较两个字符串是否相等,返回布尔值
  • 示例:
    public static void main(String[] args) {
       String a = "mzc";
       String b = "zll";
       System.out.println(a.equals(b));
    }
  • 结果:

在这里插入图片描述


String trim()

  • 语法: 字符串变量.trim();
  • 说明: 去掉字符串左右空格
  • 示例:
    public static void main(String[] args) {
       String a = "  mzc  ";
       System.out.println(a.trim());
    }
  • 结果:
    在这里插入图片描述

String replace(char oldChar,char newChar)

  • 语法: 字符串变量.replace("原本值","要替换的值")
  • 说明: 新字符替换旧字符。
  • 示例:
    public static void main(String[] args) {
       String a = "  mzcm  ";
       System.out.println(a.replace('m','w'));
    }
  • 结果:

在这里插入图片描述


String substring(int beginIndex,int endIndex)

  • 语法: 字符串变量.substring(索引 1,索引 2)
  • 说明: 截取字符串
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.substring(test.indexOf("@")+2,test.lastIndexOf("@")-1));
    }
  • 结果:
    在这里插入图片描述

boolean equalsIgnoreCase(String str)

  • 语法: 字符串变量.equalsIgnoreCase("值")
  • 说明: 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值
  • 示例:
    public static void main(String[] args) {
        String str = "HELLO WORLd";
        String str1 = "hello world";
        System.out.println(str.equalsIgnoreCase(str1));
    }
  • 结果:
    在这里插入图片描述

boolean contains(String str)

  • 语法: 字符串变量.contains(“值”)
  • 说明: 判断一个字符串里面是否包含指定的内容,返回一个布尔值
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.contains("挽周"));
    }
  • 结果:
    在这里插入图片描述

boolean startsWith(String str)

  • 语法: 字符串变量.startsWith("值")
  • 说明: 测试此字符串是否以指定的前缀开始。返回一个布尔值
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.startsWith("我"));
    }
  • 结果:
    在这里插入图片描述

boolean endsWith(String str)

  • 语法: 字符串变量.endsWith("值")
  • 说明: 测试此字符串是否以指定的后缀结束。返回一个布尔值
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.endsWith("我"));
    }
  • 结果:
    在这里插入图片描述

String replaceAll(String str1,String str2)

  • 语法: 字符串变量.replaceAll("值")
  • 说明: 将某个内容全部替换成指定内容
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.replaceAll("@","-"));
    }
  • 结果:
    在这里插入图片描述

String repalceFirst(String str1,String str2)

  • 语法: 字符串变量.repalceFirst("值")
  • 说明: 将第一次出现的某个内容替换成指定的内容
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.replaceFirst("@","-"));
    }
  • 结果:
    在这里插入图片描述

String concat(String str)

  • 语法: 字符串变量.concat("值")
  • 说明: 在原有的字符串的基础上加上指定字符串
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.concat(", 嗯?"));
    }
  • 结果:

在这里插入图片描述


boolean isEmpty()

  • 语法: 字符串变量.isEmpty()
  • 说明: 判断指定字符串是否为空
  • 示例:
    public static void main(String[] args) {
        String test = "我是Cs挽周,请官方给我个热榜,@@占位符@@谢谢了";
        System.out.println(test.isEmpty());
    }

  • 结果:

在这里插入图片描述


看完别忘了一键三连加关注哦,更多精彩文章请点击 Cs挽周 在这里插入图片描述 Java在线手册(点我跳转)

以上是关于String类的常用方法总结,Cs挽周带你玩转String类(图文总结超详细) !的主要内容,如果未能解决你的问题,请参考以下文章

Linux使用详解,10分钟带你玩转Linux基础操作

五分钟带你玩转k8s常用命令

汇编高手带你玩转字符串,快上车!

游戏开发进阶新发带你玩转Unity日志打印技巧(彩色日志 | 日志存储与上传 | 日志开关 | 日志双击溯源)

游戏开发进阶新发带你玩转Unity日志打印技巧(彩色日志 | 日志存储与上传 | 日志开关 | 日志双击溯源)

汇编高手带你玩转字符串,快上车!