「JavaSE」String类1:常用方法

个人主页:Ice_Sugar_7
所属专栏:快来卷Java啦
欢迎点赞收藏加关注哦!

String类1

  • 前言
  • 构造字符串
  • String对象的比较
  • 字符串查找
  • 转化
  • 字符串替换
  • 分割字符串
  • 截取字符串
  • 其他操作方法

前言

  • C语言中没有字符串类型,要表示字符串只能使用字符数组或者字符指针。虽然可以使用标准库提供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面向对象的思想
  • 而字符串的应用非常广泛,因此Java专门提供了String类

接下来一起来看看String类中的常用方法吧!

构造字符串

String类提供多种构造方式,常用的有以下三种:

    // 使用常量串构造
    String s1 = "hello world";

    //使用new实例化对象
    String s2 = new String("hello world");

    //使用字符数组进行构造
    char[] array = {'h','e','l','l','o','w','o','r','l','d'};
    String s3 = new String(array);

在String的实现源码中,我们可以看到它的字段:
「JavaSE」String类1:常用方法_第1张图片
可见,字符串实际上是保存在字符数组中的

String对象的比较

字符串的比较是常见的操作之一,Java提供四种比较的方式:

  1. 比较地址
    对于内置类型,==比较的是变量中的值;对于引用类型比较的则是引用的对象的地址,即是否引用同一个对象
  2. equals( )方法
    String类中重写了equals( ),可以比较字符串的内容是否一样
    public static void main(String[] args) {
        String str1 = "abc";
        String str2 = "abc";
        String str3 = "abcd"
        System.out.println(str1.equals(str2));//输出true
        System.out.println(str3.equals(str1));//输出false
    }
  1. compareTo方法
int compareTo(String s)

比较方式:
先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值
如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值

    public static void main(String[] args) {
        String str1 = "abc";
        String str2 = "aecd";
        String str3 = "aecdefg";
        System.out.println(str1.compareTo(str2)); //b和eASCII码相差3,输出-3(因为b小于e)
        System.out.println(str2.compareTo(str3)); //str3比str2长,且前4个字符相同,此时返回二者长度差值
	}

「JavaSE」String类1:常用方法_第2张图片
4. compareToIgnoreCase方法

 int compareToIgnoreCase(String str)

比较方式和compareTo方法一样,不过这个会忽略大小写


字符串查找

字符串查找也是常见的操作,String类提供常用查找方法:
「JavaSE」String类1:常用方法_第3张图片


转化

  1. 数值转化为字符串
    String类提供的valueOf方法可以将整型、浮点型、布尔类型等转化为字符串
    如果是引用类型,那么就会打印出它的地址(内存地址的字符串表示形式)
    「JavaSE」String类1:常用方法_第4张图片
    「JavaSE」String类1:常用方法_第5张图片
  2. 大小写转换

toUpperCase( ):将所有小写字母转换为大写
toLowerCase( ):大写字母转小写

  1. 字符串转数组
    使用toCharArray()方法可以将字符串中的字符存进字符数组
    (注意:存进数组后,原始字符串仍然存在)
public static void main(String[] args) {
    String s = "hello";
    // 字符串转数组
    char[] ch = s.toCharArray();
    System.out.println(Arrays.toString(ch));
}

「JavaSE」String类1:常用方法_第6张图片
4. 格式化字符串
Java中通常用占位符来格式化字符串

    public static void main(String[] args) {
        String s1 = String.format("%d-%d-%d", 2024, 1,27);
        String s2 = "乌蒙山";
        String s3 = String.format("%s连着山外山",s2);
        System.out.println(s1);
        System.out.println(s3);
    }

「JavaSE」String类1:常用方法_第7张图片


字符串替换

使用一个新的字符串替换已有的字符串数据,可以用以下的方法:

方法 功能
String replaceAll(String regex, String replacement) 替换所有的指定内容
String replaceFirst(String regex, String replacement) 替换首个内容
       public static void main(String[] args) {
        String s1 = "hello world";
        String  s2 = s1.replaceAll("l","a");
        System.out.println(s2);
        String  s3 = s1.replaceFirst("l","a");
        System.out.println(s3);
    }

「JavaSE」String类1:常用方法_第8张图片


分割字符串

将一个完整的字符串按照指定的分隔符划分为若干个子字符串

方法 功能
String[] split(String regex) 将字符串按照指定分隔符拆分
String[] split(String regex, int limit) 按指定格式,拆分为limit组
public static void main(String[] args) {
    String str1 = "he llo w or ld";
    String[] s1 = str1.split(" ");
    System.out.println(Arrays.toString(s1));

    String str2 = "hello world hello";
    String[] s2 = str2.split(" ",2); //根据空格分割为两组
    System.out.println(Arrays.toString(s2));
}

「JavaSE」String类1:常用方法_第9张图片
有些特殊字符作为分割符可能无法正确切分,需要加上转义

字符|*+.都得加上转义字符,前面加上 \\
如果以\\分割,那就要写成\\\\
如果一个字符串中有多个分隔符,可以用[],在里面写上分隔符就ok了(注意:此时上述字符就不用\转义)

public static void main(String[] args) {
    String str3 = "hello\\world\\hello";
    String[] s3 = str3.split("\\\\");
    System.out.println(Arrays.toString(s3));

    String str4 = "Tomorrow=is.another day";
    String[] s4 = str4.split("[=. ]"); //以=、.和空格作为分隔符
    System.out.println(Arrays.toString(s4));
}

「JavaSE」String类1:常用方法_第10张图片
除了使用[]我们也可以多次分割,一次以一个分隔符分割:

public static void main(String[] args) {
    String str4 = "apple,banana;grape;strawberry,pear,lemon";
    String[] s1 = str4.split(",");  //第一次分割
    for (String s:s1) {
        String[] tmp  = s.split(";");  //第二次分割,使用一个临时数组存储分割后的结果,然后打印
        for(int i = 0;i < tmp.length;i++) {
            System.out.print(tmp[i] + " ");
        }
    }
}

在这里插入图片描述


截取字符串

就是从一个完整的字符串中截取出部分内容

方法 功能
String substring(int beginIndex) 从指定索引截取到结尾
String substring(int beginIndex, int endIndex) 截取部分内容
public static void main(String[] args) {
    String str = "helloworld" ;
    System.out.println(str.substring(0, 5));
}

注意:索引下标区间是左闭右开,即包含0下标,不包含5下标


其他操作方法

方法 功能
String trim() 去掉字符串中的左右空格,保留中间空格
int length() 返回字符串长度
boolean isEmpty() 判断字符串长度是否为0
public static void main(String[] args) {
    String str = "   hello   world   \n" ;
    String str1 = str.trim();
    System.out.print(str);
    System.out.print(str1);
}

「JavaSE」String类1:常用方法_第11张图片
总结:trim 会去掉字符串开头和结尾的空白字符(空格、换行、制表符等)

你可能感兴趣的:(快来卷Java啦,java,开发语言)