带你快速掌握Java中的String类和StringBuffer类(详解常用方法 | 区别 )

简介: 带你快速掌握Java中的String类和StringBuffer类(详解常用方法 | 区别 )

本文介绍了Java中字符串操作的常用方法,如获取长度、字符操作、索引查找、字符串转换、拼接、分割、替换以及String和StringBuffer类的区别,重点讲解了这两种类在处理字符串时的特性和适用场景。


String类

1.获取功能的常用方法

int length( )          获取字符串长度

char charAt( )     获取指定位置上的字符

int indexOf( )      获取字符首次出现的位置,也可以从指定位置开始查找

lastIndexOf( )     从后往前找

String substring( )   从指定位置开始截取一个字符串副本

 public static void main(String[] args) {
        //获取功能
        String s1 = "abcdabcd";
 
        //int length() 获取字符串长度
        System.out.println(s1.length());   // 8
        
        //char charAt() 获取指定位置上的字符 
        System.out.println(s1.charAt(4));  //索引4对应的字符 a
        
        //int indexOf() 获取字符首次出现的位置
        System.out.println(s1.indexOf("a"));  //注意是首次出现的位置
        
        //int indexOf(str:  ,fromindex: )   从指定位置开始查找
        System.out.println(s1.indexOf("a",4));
        
        //lastIndexOf() 从后往前找
        System.out.println(s1.lastIndexOf("a"));
        
        //String substring() 从指定位置开始截取一个字符串副本
        String s2=s1.substring(2,6);   //截取索引2~6的字符串(不包含索引6对应的字符)
        System.out.println(s2);     //   2 <= res < 6
 
    }

2.转换功能的常用方法

String toUpperCase( )     将字符串内容全部转换为大写

String toLowerCase( )     将字符串内容全部转换为小写

String concat(String str)  拼接指定字符串内容到原字符串末尾

String [ ] split(分割符)      通过分割符将字符串分割并以数组形式返回

public static void main(String[] args) {
 
        String s1="WoShiChinese";
        System.out.println(s1.toUpperCase()); //转大写
        System.out.println(s1.toLowerCase()); //转小写
 
        String s2 ="我爱中国";
        System.out.println(s2.concat(s1));  //拼接s1字符串内容到s2字符串末尾
 
        //String[] split(分割符)
        String s3 = "张三:中国人;"+"Tom:英国人;"+"梅西:阿根廷人;";
        String[] strings = s3.split(";");  //通过" ; "来截取s3字符串
        System.out.println(Arrays.toString(strings));
    }

3.替换功能的常用方法

String replace(char old,char new)          单个字符替换

String replace(String old,String new)      整个字符串替换

replaceAll(String regex, String replacement)     替换字符串中所有数字

replaceFirst(String regex, String replacement)   替换字符串中第一个数字

 public static void main(String[] args) {
        String s1 = " ab5cd7bda";
        //用"A"替换字符串中所有的"a"
        System.out.println(s1.replace("a","A"));
        //用"G"替换字符串中所有数字       \\d表示所有字符串中所有的数字
        System.out.println(s1.replaceAll("\\d","G"));
        //用"R"替换字符串中第一个数字
        System.out.println(s1.replaceFirst("\\d","R"));
    }

4.去除字符串两端空格

String trim( )    去除字符串两端空格(字符串中间的空格不能去除

public static void main(String[] args) {
        
        //String trim() 去除字符串两端空格
 
        String s2 =" abcEF 13aD1 ";
        System.out.println(s2);
        System.out.println(s2.length());         //原字符串长度
        System.out.println(s2.trim());//去除两端空格,字符串中间的空格不能去除
        System.out.println(s2.trim().length());  //去除空格后字符串的长度
 
    }

StringBuffer类

需要注意:

String可以直接创建字符串对象,而StringBuffer不能,需要新创建一个字符串对象。

          String s1 = "abc";
          StringBuffer s2 = new StringBuffer("abc");

添加功能

public StringBuffer append(String str)         在原字符串末尾添加字符串

public static void main(String[] args) {
 
        StringBuffer s1 = new StringBuffer("abc");
        s1.append("def");         // 不能使用+=
        System.out.println(s1);
    }

输出:abcdef

public StringBuffer insert(int offset,String str)   向指定位置插入字符串

public static void main(String[] args) {
        StringBuffer s1 = new StringBuffer("abc");
        //向字符串s1末尾添加"def"
        s1.append("def");         // 不能使用+=
        System.out.println(s1);
 
        //向指定位置插入字符串
        s1.insert(1,"ABC");  //向索引为1的位置插入字符串"ABC"
        System.out.println(s1);
    }

输出:aABCbcdef

删除功能

public StringBuffer deleteCharAt(int index)      删除单个字符

public StringBuffer delete(int start,int end)      删除指定区间的元素,不包含结尾

public static void main(String[] args) {
        StringBuffer s1 = new StringBuffer("abcdef");
        s1.deleteCharAt(2);  //删除索引为2的字符
        System.out.println(s1);
 
        //删除指定区间的元素,不包含结尾
        StringBuffer s2 = new StringBuffer("ABCDEF");
        s2.delete(1,3);
        System.out.println(s2);
    }

替换功能

public StringBuffer replace(int start,int end,String str)

StringBuffer s1 = new StringBuffer("abcdef");
        s1.replace(0,3,"ABC");
        System.out.println(s1);

输出:ABCdef

反转功能

public StringBuffer reverse( )

StringBuffer s1 = new StringBuffer("abcdef");
        s1.reverse();   //反转
        System.out.println(s1);

输出:fedcba

截取功能

从StringBuffer中截取一个副本,返回给一个新的String对象,StringBuffer对象不变

public static void main(String[] args) {
        StringBuffer s1 = new StringBuffer("abcdef");
        //从StringBuffer中截取一个副本,返回给一个新的String对象,StringBuffer对象不变
        String s2=s1.substring(1,4);
        System.out.println(s1);
        System.out.println(s2);
    }


StringBuffer和String的区别

String修饰的字符串是一个值不能改变的字符串,用String声明的字符串对象值一旦给定就不能改变了,每次拼接都会创建新的字符串对象,耗时且占用空间。


StringBuffer是内容可以改变的字符串,值可以改变且不需要创建新对象,在多任务执行时是安全的适合单线程。

 

相关文章
|
28天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
38 6
|
16天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
40 17
|
8天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
12天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
53 4
|
13天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
30 2
|
17天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
21天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
21天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
|
21天前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
23 3
|
24天前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
22 5

热门文章

最新文章