Java中String方法学习总结_kaic

简介: Java中String方法学习总结_kaic

String详解

Java中的String是一个不可变的字符序列,它是Java中最常用的数据类型之一。

常用构造方法

String():无参构造方法,创建一个空字符串对象。

String(char[] value):通过字符数组创建一个字符串对象。

String(char[] value, int offset, int count):通过字符数组的一部分创建一个字符串对象,从指定的

   偏移量开始,取count个字符。

String(byte[] bytes):通过字节数组创建一个字符串对象,使用平台的默认字符集将字节解码为字符。

String(byte[] bytes, int offset, int length):通过字节数组的一部分创建一个字符串对象,从指定的

   偏移量开始,取length个字节,并使用平台的默认字符集将字节解码为字符。

String(String original):通过复制原始字符串创建一个新的字符串对象。

String(StringBuffer buffer):通过StringBuffer对象创建一个字符串对象。

String(StringBuilder builder):通过StringBuilder对象创建一个字符串对象。

代码演示

public class crj{

   public static void main(String[] args) {

       // 无参构造方法

       String str1 = new String();

       System.out.println("str1: " + str1);

               // 输出:str1:

       // 通过字符数组创建字符串对象

       char[] charArray = {'H', 'e', 'l', 'l', 'o'};

       String str2 = new String(charArray);

       System.out.println("str2: " + str2);

               // 输出:str2: Hello

       // 通过字符数组的一部分创建字符串对象

       String str3 = new String(charArray, 2, 3);

       System.out.println("str3: " + str3);

               // 输出:str3: llo

       // 通过字节数组创建字符串对象

       byte[] byteArray = {72, 101, 108, 108, 111};

       String str4 = new String(byteArray);

       System.out.println("str4: " + str4);

               // 输出:str4: Hello

       // 通过字节数组的一部分创建字符串对象

       String str5 = new String(byteArray, 2, 3);

       System.out.println("str5: " + str5);

               // 输出:str5: llo

       // 通过复制原始字符串创建新的字符串对象

       String original = "Hello";

       String str6 = new String(original);

       System.out.println("str6: " + str6);

               // 输出:str6: Hello

       // 通过StringBuffer对象创建字符串对象

       StringBuffer buffer = new StringBuffer("Hello");

       String str7 = new String(buffer);

       System.out.println("str7: " + str7);

                   // 输出:str7: Hello

       // 通过StringBuilder对象创建字符串对象

       StringBuilder builder = new StringBuilder("Hello");

       String str8 = new String(builder);

       System.out.println("str8: " + str8);

               // 输出:str8: Hello

   }

}

常用成员方法

int length():返回字符串的长度。

char charAt(int index):返回指定索引位置的字符。

int indexOf(String str):返回指定子字符串在字符串中第一次出现的索引位置。

int lastIndexOf(String str):返回指定子字符串在字符串中最后一次出现的索引位置。

boolean startsWith(String prefix):判断字符串是否以指定的前缀开始。

boolean endsWith(String suffix):判断字符串是否以指定的后缀结束。

boolean isEmpty():判断字符串是否为空。

String substring(int beginIndex):返回从指定索引位置开始到字符串末尾的子字符串。

String substring(int beginIndex, int endIndex):返回从指定的开始索引位置到结束索引位置的子字

   符串。

String replace(char oldChar, char newChar):将字符串中的所有旧字符替换为新字符。

String replace(CharSequence target, CharSequence replacement):将字符串中的所有目标字符序列替换为指定的

   替换字符序列。

String[] split(String regex):将字符串根据指定的正则表达式分割为字符串数组。

String trim():去除字符串两端的空白字符。

boolean equals(Object obj):判断字符串是否与指定对象相等。

boolean equalsIgnoreCase(String anotherString):忽略大小写判断字符串是否与另一个字符串相等。

String toLowerCase():将字符串转换为小写。

String toUpperCase():将字符串转换为大写。

String concat(String str):将指定字符串连接到原字符串的末尾。

boolean contains(CharSequence sequence):判断字符串是否包含指定的字符序列。

String format(String format, Object... args):将指定格式的字符串与参数进行格式化。

代码示例

public class StringMethodsDemo {

   public static void main(String[] args) {

       String str = "Hello, World!";

       // length()

       int length = str.length();

       System.out.println("Length: " + length);

           // 输出:Length: 13

       // charAt(int index)

       char ch = str.charAt(7);

       System.out.println("Character at index 7: " + ch);

            // 输出:Character at index 7: W

       // indexOf(String str)

       int index = str.indexOf("World");

       System.out.println("Index of 'World': " + index);

           // 输出:Index of 'World': 7

       // lastIndexOf(String str)

       int lastIndex = str.lastIndexOf("o");

       System.out.println("Last index of 'o': " + lastIndex);

           // 输出:Last index of 'o': 8

       // startsWith(String prefix)

       boolean startsWith = str.startsWith("Hello");

       System.out.println("Starts with 'Hello': " + startsWith);

           // 输出:Starts with 'Hello': true

       // endsWith(String suffix)

       boolean endsWith = str.endsWith("World");

       System.out.println("Ends with 'World': " + endsWith);

           // 输出:Ends with 'World': false

       // isEmpty()

       boolean isEmpty = str.isEmpty();

       System.out.println("Is empty: " + isEmpty);

           // 输出:Is empty: false

       // substring(int beginIndex)

       String substring1 = str.substring(7);

       System.out.println("Substring from index 7: " + substring1);

            // 输出:Substring from index 7: World!

       // substring(int beginIndex, int endIndex)

       String substring2 = str.substring(7, 12);

       System.out.println("Substring from index 7 to 12: " + substring2);

           // 输出:Substring from index 7 to 12: World

       // replace(char oldChar, char newChar)

       String replaced = str.replace('o', 'O');

       System.out.println("Replaced string: " + replaced); // 输出:Replaced string: HellO, WOrld!

       // replace(CharSequence target, CharSequence replacement)

       String replaced2 = str.replace("World", "Universe");

       System.out.println("Replaced string: " + replaced2);

           // 输出:Replaced string: Hello, Universe!

       // split(String regex)

       String[] splitArray = str.split(",");

       System.out.println("Split array: " + Arrays.toString(splitArray));

            // 输出:Split array: [Hello,  World!]

       // trim()

       String trimmed = str.trim();

       System.out.println("Trimmed string: " + trimmed);

           // 输出:Trimmed string: Hello, World!

       // equals(Object obj)

       boolean equals = str.equals("Hello, World!");

       System.out.println("Equals 'Hello, World!': " + equals);

           // 输出:Equals 'Hello, World!': true

       // equalsIgnoreCase(String anotherString)

       boolean equalsIgnoreCase = str.equalsIgnoreCase("hello, world!");

       System.out.println("Equals ignore case 'hello, world!': " + equalsIgnoreCase);

           // 输出:Equals ignore case 'hello, world!': true

       // toLowerCase()

       String lowerCase = str.toLowerCase();

       System.out.println("Lower case: " + lowerCase);

           // 输出:Lower case: hello, world!

       // toUpperCase()

       String upperCase = str.toUpperCase();

       System.out.println("Upper case: " + upperCase); // 输出:Upper case: HELLO, WORLD!

       // concat(String str)

       String concat = str.concat(" How are you?");

       System.out.println("Concatenated string: " + concat);

           // 输出:Concatenated string: Hello, World! How are you?

       // contains(CharSequence sequence)

       boolean contains = str.contains("World");

       System.out.println("Contains 'World': " + contains);

           // 输出:Contains 'World': true

       // format(String format, Object... args)

       String formatted = String.format("The value of pi is approximately %.2f", Math.PI);

       System.out.println("Formatted string: " + formatted);

           // 输出:Formatted string: The value of pi is approximately 3.14

   }

}

总结

String是一个重要的数据类型,它提供了许多方法来处理字符串。由于字符串的不可变性,每次对字符串进行

操作都会创建一个新的字符串对象,因此在频繁操作字符串时需要注意性能问题。

相关文章
|
6天前
|
Java 数据库连接
Java中的内存泄漏排查与预防方法
Java中的内存泄漏排查与预防方法
|
5天前
|
缓存 算法 Java
Java面试题:深入探究Java内存模型与垃圾回收机制,Java中的引用类型在内存管理和垃圾回收中的作用,Java中的finalize方法及其在垃圾回收中的作用,哪种策略能够提高垃圾回收的效率
Java面试题:深入探究Java内存模型与垃圾回收机制,Java中的引用类型在内存管理和垃圾回收中的作用,Java中的finalize方法及其在垃圾回收中的作用,哪种策略能够提高垃圾回收的效率
12 1
|
4天前
|
缓存 Prometheus 监控
Java面试题:如何监控和优化JVM的内存使用?详细讲解内存调优的几种方法
Java面试题:如何监控和优化JVM的内存使用?详细讲解内存调优的几种方法
25 3
|
4天前
|
缓存 监控 算法
Java面试题:讨论JVM性能调优的常见方法和技巧。
Java面试题:讨论JVM性能调优的常见方法和技巧。
10 1
|
7天前
|
Java Spring
使用Java实现自定义注解的方法与技巧
使用Java实现自定义注解的方法与技巧
java.lang.NullPointerExceptionMybatisPlus出现,测试,java.lang.NullPointe,空指针异常,public方法少写了一个字段,没加注解
java.lang.NullPointerExceptionMybatisPlus出现,测试,java.lang.NullPointe,空指针异常,public方法少写了一个字段,没加注解
|
4天前
|
存储 设计模式 监控
Java面试题:简述JVM的内存结构,包括堆、栈、方法区等。栈内存优化的方法有 哪些?
Java面试题:简述JVM的内存结构,包括堆、栈、方法区等。栈内存优化的方法有 哪些?
15 0
|
7天前
|
设计模式 算法 Oracle
Java语言学习路径及学习资源推荐
Java语言学习路径及学习资源推荐
|
10天前
|
JSON NoSQL Java
Redis18的Java客户端-StringRedisTemplate,序列化存在的问题,使用StringRedisTemplate解决序列化的方法
Redis18的Java客户端-StringRedisTemplate,序列化存在的问题,使用StringRedisTemplate解决序列化的方法
|
11天前
|
Java
解决Java中的EOFException异常的方法
解决Java中的EOFException异常的方法