深入探讨java常用类------String类、StringBuffer、StringBuilder类(中)

目录

一. String类

1.1 概述

1.2 String的获取方式

1.3 常用API

二. StringBuffer与StringBuilder

2.1 概述

2.2 构造方法

2.3 常用方法

总结


        在Java编程中,处理字符串与基本数据类型是非常常见的需求。JDK为我们提供了多个类来应对这些需求,今天我们将详细介绍StringStringBufferStringBuilder、包装类IntegerBigIntegerBigDecimal。以下是对这些类的使用方法及相关代码示例。

一. String类

1.1 概述

  String类是用来表示字符串的类,它的底层结构是final char value[],因此String对象是不可变的。这意味着每次对String进行修改操作时,都会生成一个新的String对象,而不是在原对象上进行修改。

1.2 String的获取方式

  • 方式1:通过双引号定义

    直接使用双引号定义的字符串会存储在常量池中。常量池是一块内存区域,专门用于存储常量数据。

    public static void main(String[] args) {
        String name = "haley";
    }
    

  • 方式2:通过new关键字定义

    使用new关键字创建的字符串存储在堆内存中。

    public static void main(String[] args) {
        String name = new String("haley");
    }
    

1.3 常用API

  • 获取字符串长度

    length()方法返回字符串的长度。

    public static void main(String[] args) {
        String name = new String("haley");
        System.out.println(name.length()); // 输出:5
    }
    

  • 字符串比较

    equals(Object anObject)用于比较两个字符串是否相等,equalsIgnoreCase(String anotherString)则忽略大小写进行比较。

    public static void main(String[] args) {
        String name = new String("haley");
        System.out.println(name.equals("Haley")); // 输出:false
        System.out.println(name.equalsIgnoreCase("Haley")); // 输出:true
    }
    

  • 转换大小写

    toLowerCase()toUpperCase()分别将字符串转换为小写和大写。

    public static void main(String[] args) {
        String name = new String("Haley");
        System.out.println(name.toLowerCase()); // 输出:haley
        System.out.println(name.toUpperCase()); // 输出:HALEY
    }
    

  • 字符串拼接

    concat(String str)用于将指定字符串连接到此字符串的末尾。此外,还可以使用+号进行拼接。

    public static void main(String[] args) {
        String name = new String("hello ");
        System.out.println(name.concat("helay")); // 输出:hello helay
        System.out.println("hello " + "helay"); // 输出:hello helay
    }
    

  • 查找字符或子字符串的位置

    indexOflastIndexOf分别用于查找指定字符或子字符串在字符串中第一次和最后一次出现的位置。

    public static void main(String[] args) {
        String word = "hello , welcome to bailiban!";
        System.out.println(word.indexOf(97)); // 输出:20 (字符'a'第一次出现的位置)
        System.out.println(word.indexOf("ba")); // 输出:19 (子字符串'ba'第一次出现的位置)
        System.out.println(word.lastIndexOf(97)); // 输出:25 (字符'a'最后一次出现的位置)
        System.out.println(word.lastIndexOf("ba")); // 输出:24 (子字符串'ba'最后一次出现的位置)
    }
    

  • 截取子字符串

    @Test
    public void testString01() {
        String word = "hello , welcome to bailiban!";
        System.out.println(word.substring(8)); // 输出:welcome to bailiban!
        System.out.println(word.substring(8, 15)); // 输出:welcome
    }
    

  • 去除两端空白字符

    trim()方法返回去掉两端空白字符的新字符串。

    @Test
    public void testString02() {
        String word = "  hello  ";
        System.out.println(word.trim()); // 输出:hello
    }
    

  • 替换字符串

    replace(CharSequence target, CharSequence replacement)用于将字符串中的指定子字符串替换为新字符串。

    @Test
    public void testString03() {
        String word = "hello , welcome to bailiban!";
        System.out.println(word.replace("hello", "byebye")); // 输出:byebye , welcome to bailiban!
    }
    

  • 获取指定索引处的字符

    charAt(int index)用于获取指定索引位置的字符。

    @Test
    public void testString04() {
        String word = "hello , welcome to bailiban!";
        System.out.println(word.charAt(4)); // 输出:o
    }
    

  • 字符串分割

    split(String regex)根据正则表达式将字符串分割为数组。

    @Test
    public void testString05() {
        String word = "welcome to bailiban!";
        String[] attr = word.split(" ");
        System.out.println(Arrays.toString(attr)); // 输出:[welcome, to, bailiban!]
    }
    

二. StringBuffer与StringBuilder

2.1 概述

StringBufferStringBuilder是可变字符序列,类似于String,但其内容和长度可以修改。两者的主要区别在于StringBuffer是线程安全的,而StringBuilder不是。官方推荐使用StringBuilder

2.2 构造方法

  • 默认构造方法

    创建一个空的StringBuilder对象。

    @Test
    public void testStringBuilder01() {
        StringBuilder sb = new StringBuilder();
        System.out.println(sb); // 输出:空白
    }
    

  • 指定初始字符串的构造方法

    创建一个包含指定字符串的StringBuilder对象。

    @Test
    public void testStringBuilder01() {
        StringBuilder sb2 = new StringBuilder("bailiban");
        System.out.println(sb2); // 输出:bailiban
    }
    

2.3 常用方法

  • append方法

    append方法用于将任意类型的数据追加到StringBuilder中。

    @Test
    public void testStringBuilder02() {
        StringBuilder sb = new StringBuilder();
        sb = sb.append("hello ").append(" welcome ").append(" to ").append(" bailiban ");
        System.out.println(sb); // 输出:hello  welcome  to  bailiban
    }
    

  • reverse方法

    reverse()用于将字符串内容进行反转。

    @Test
    public void testStringBuilder03() {
        StringBuilder sb = new StringBuilder("bailiban");
        System.out.println(sb.reverse()); // 输出:nailibab
    }
    

    总结

    本篇文章详细介绍了Java中常用的StringStringBufferStringBuilder类的相关知识和实操案例。这些类为Java开发者提供了强大的工具来处理字符串和基本数据类型,希望这些示例能够帮助你更好地理解和应用它们。

              如果你喜欢可以给我一个免费的赞和关注,这是我持续创作的动力!
  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值