Java中String类介绍、所有常用方法和示例代码

在Java中,String类是一个用于表示不可变字符串序列的类。String类是Java标准库的一部分,属于java.lang包,并且String对象是不可变的,一旦创建,其内容就不能更改。String类提供了丰富的方法来操作字符串,如查找、比较、子串、替换等。

String 类概述

  • 不可变性:一旦创建String对象,其值不能改变。每次对String对象的修改都会创建一个新的String对象。
  • 线程安全:由于其不可变性,String是线程安全的。
  • 常量池:为了提高性能和减少内存开销,Java会在常量池中存储String字面量,这样可以重复利用相同的字符串。

常用的String类方法

1. length()

  • 描述:返回字符串的长度。
  • 示例
String str = "Hello, World!";
int length = str.length(); // 13

2. charAt(int index)

  • 描述:返回指定索引处的字符。
  • 示例
String str = "Hello";
char ch = str.charAt(1); // 'e'

3. substring(int beginIndex), substring(int beginIndex, int endIndex)

  • 描述:返回一个子字符串,从beginIndex开始到字符串末尾,或者到endIndex(不包括endIndex)。
  • 示例
String str = "Hello, World!";
String sub1 = str.substring(7); // "World!"
String sub2 = str.substring(0, 5); // "Hello"

4. contains(CharSequence sequence)

  • 描述:判断字符串是否包含指定的字符序列。
  • 示例
String str = "Hello, World!";
boolean containsHello = str.contains("Hello"); // true

5. indexOf(String str), indexOf(String str, int fromIndex)

  • 描述:返回指定子字符串在字符串中第一次出现的索引,或从指定索引开始搜索。
  • 示例
String str = "Hello, World!";
int index1 = str.indexOf("World"); // 7
int index2 = str.indexOf("o", 5); // 8

6. lastIndexOf(String str), lastIndexOf(String str, int fromIndex)

  • 描述:返回指定子字符串在字符串中最后一次出现的索引,或从指定索引开始向后搜索。
  • 示例
String str = "Hello, World!";
int lastIndex1 = str.lastIndexOf("o"); // 8
int lastIndex2 = str.lastIndexOf("o", 7); // 4

7. equals(Object anObject)

  • 描述:比较两个字符串的内容是否相同。
  • 示例
String str1 = "Hello";
String str2 = "Hello";
boolean isEqual = str1.equals(str2); // true

8. equalsIgnoreCase(String anotherString)

  • 描述:忽略大小写地比较两个字符串的内容是否相同。
  • 示例
String str1 = "Hello";
String str2 = "hello";
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // true

9. compareTo(String anotherString)

  • 描述:按字典顺序比较两个字符串。
  • 示例
String str1 = "Hello";
String str2 = "World";
int compare = str1.compareTo(str2); // -15

10. compareToIgnoreCase(String anotherString)

  • 描述:忽略大小写地按字典顺序比较两个字符串。
  • 示例
String str1 = "Hello";
String str2 = "hello";
int compareIgnoreCase = str1.compareToIgnoreCase(str2); // 0

11. startsWith(String prefix), startsWith(String prefix, int toffset)

  • 描述:判断字符串是否以指定的前缀开始。
  • 示例
String str = "Hello, World!";
boolean startsWithHello = str.startsWith("Hello"); // true

12. endsWith(String suffix)

  • 描述:判断字符串是否以指定的后缀结束。
  • 示例
String str = "Hello, World!";
boolean endsWithWorld = str.endsWith("World!"); // true

13. toLowerCase(), toUpperCase()

  • 描述:返回一个新的字符串,全部字符转换为小写或大写。
  • 示例
String str = "Hello, World!";
String lowerStr = str.toLowerCase(); // "hello, world!"
String upperStr = str.toUpperCase(); // "HELLO, WORLD!"

14. trim()

  • 描述:返回一个字符串,去掉前导和尾部的空格。
  • 示例
String str = "   Hello, World!   ";
String trimmedStr = str.trim(); // "Hello, World!"

15. replace(char oldChar, char newChar), replace(CharSequence target, CharSequence replacement)

  • 描述:返回一个新的字符串,用新的字符或字符序列替换所有匹配的字符或字符序列。
  • 示例
String str = "Hello, World!";
String replacedStr1 = str.replace('o', 'a'); // "Hella, Warld!"
String replacedStr2 = str.replace("World", "Java"); // "Hello, Java!"

16. split(String regex), split(String regex, int limit)

  • 描述:根据给定的正则表达式分割字符串。
  • 示例
String str = "apple,orange,banana";
String[] fruits = str.split(","); // ["apple", "orange", "banana"]

17. join(CharSequence delimiter, CharSequence... elements)

  • 描述:将多个字符序列连接成一个字符串,中间使用指定的分隔符。
  • 示例
String[] words = {"Java", "is", "awesome"};
String joinedStr = String.join(" ", words); // "Java is awesome"

18. valueOf()

  • 描述:返回给定类型的字符串表示形式(包括基本数据类型、对象等)。
  • 示例
int num = 123;
String numStr = String.valueOf(num); // "123"

19. isEmpty()

  • 描述:判断字符串是否为空(长度为0)。
  • 示例
String str = "";
boolean isEmpty = str.isEmpty(); // true

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

  • 描述:使用指定格式字符串和参数返回格式化的字符串。
  • 示例
String formattedStr = String.format("Hello, %s!", "World"); // "Hello, World!"

示例代码

下面是一个包含上述方法使用示例的完整代码:

public class StringMethodsExample {
    public static void main(String[] args) {
        String str = "Hello, World!";

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

        // charAt()
        System.out.println("Character at index 1: " + str.charAt(1));

        // substring()
        System.out.println("Substring from index 7: " + str.substring(7));
        System.out.println("Substring from index 0 to 5: " + str.substring(0, 5));

        // contains()
        System.out.println("Contains 'Hello': " + str.contains("Hello"));

        // indexOf()
        System.out.println("Index of 'World': " + str.indexOf("World"));

        // lastIndexOf()
        System.out.println("Last index of 'o': " + str.lastIndexOf("o"));

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

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

        // compareTo()
        System.out.println("Compare to 'Hello': " + str.compareTo("Hello"));

        // compareToIgnoreCase()
        System.out.println("Compare to ignore case 'hello, world!': " + str.compareToIgnoreCase("hello, world!"));

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

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

        // toLowerCase() and toUpperCase()
        System.out.println("To lower case: " + str.toLowerCase());
        System.out.println("To upper case: " + str.toUpperCase());

        // trim()
        String strWithSpaces = "   Hello, World!   ";
        System.out.println("Trimmed: '" + strWithSpaces.trim() + "'");

        // replace()
        System.out.println("Replace 'o' with 'a': " + str.replace('o', 'a'));
        System.out.println("Replace 'World' with 'Java': " + str.replace("World", "Java"));

        // split()
        String fruits = "apple,orange,banana";
        String[] fruitArray = fruits.split(",");
        System.out.println("Fruits split: ");
        for (String fruit : fruitArray) {
            System.out.println(fruit);
        }

        // join()
        String[] words = {"Java", "is", "awesome"};
        System.out.println("Joined string: " + String.join(" ", words));

        // valueOf()
        int num = 123;
        System.out.println("String value of num: " + String.valueOf(num));

        // isEmpty()
        String emptyStr = "";
        System.out.println("Is empty: " + emptyStr.isEmpty());

        // format()
        String formattedStr = String.format("Hello, %s!", "World");
        System.out.println("Formatted string: " + formattedStr);
    }
}

结论

String类在Java中是一个功能强大且常用的类,提供了许多用于字符串操作的方法。了解这些方法有助于有效地处理字符串数据。通过示例代码可以看到这些方法的实际应用,帮助开发人员在日常编程中更好地使用String类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值