Java基础篇--String(字符串)类

Java中的String类是用于处理字符串的核心类之一。它属于Java的标准库,并提供了许多操作字符串的方法。

String类是不可变的,这意味着一旦创建了一个String对象,它的值就不能被改变。当对字符串进行操作时,实际上是创建了一个新的String对象。如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类

String类的初始化

String类的初始化有以下几种方式:

  • 直接赋值:通过将字符串字面值(用双引号括起来的字符序列)赋给String对象进行初始化。例如:

    String str1 = "Hello World";
    System.out.println(str1); // 输出: Hello World
    
  • 使用构造方法:使用String类的构造方法来创建一个新的String对象。常用的构造方法包括:

    1. String():创建一个空字符串对象。
    2. String(String original):根据指定的字符串original创建一个新的字符串对象。
    3. String(char[] value):根据字符数组value的内容创建一个新的字符串对象。
    4. String(char[] value, int offset, int count):根据字符数组value中从偏移量offset开始、长度为count的部分创建一个新的字符串对象。
    5. String(byte[] bytes):根据字节数组bytes的内容使用平台默认字符集创建一个新的字符串对象。
    6. String(byte[] bytes, String charsetName):根据字节数组bytes的内容使用指定的字符集charsetName创建一个新的字符串对象。
String str2 = new String(); // 创建一个空字符串对象
System.out.println(str2); // 输出: ""

char[] charArray = {'H', 'e', 'l', 'l', 'o'};
String str3 = new String(charArray); // 根据字符数组创建字符串对象
System.out.println(str3); // 输出: Hello

byte[] byteArray = {72, 101, 108, 108, 111};
String str4 = new String(byteArray); // 根据字节数组使用默认字符集创建字符串对象
System.out.println(str4); // 输出: Hello

String str5 = new String(byteArray, "UTF-8"); // 根据字节数组使用指定字符集创建字符串对象
System.out.println(str5); // 输出: Hello
  • 使用静态工厂方法:String类提供了一些静态工厂方法用于创建字符串对象,例如:

  1. String.valueOf():将其他基本类型或对象转换为字符串。
  2. String.format():使用格式化字符串和参数创建一个新的字符串对象。
String str2 = new String(); // 创建一个空字符串对象
System.out.println(str2); // 输出: ""

char[] charArray = {'H', 'e', 'l', 'l', 'o'};
String str3 = new String(charArray); // 根据字符数组创建字符串对象
System.out.println(str3); // 输出: Hello

byte[] byteArray = {72, 101, 108, 108, 111};
String str4 = new String(byteArray); // 根据字节数组使用默认字符集创建字符串对象
System.out.println(str4); // 输出: Hello

String str5 = new String(byteArray, "UTF-8"); // 根据字节数组使用指定字符集创建字符串对象
System.out.println(str5); // 输出: Hello

String 方法

下面是 String 类支持的常用方法,更多详细,参看 Java String API 文档:

方法声明

功能描述

int indexOf(int ch)

返回指定字符ch在字符串中第一次出现位置的索引

int lastIndexOf(int ch)

返回指定字符ch在字符串中最后一次出现位置的索引

int indexOf(String str)

返回指定子字符串str在字符串第一次出现位置的索引

int lastIndexOf(String str)

返回指定子字符串str在此字符串中最后一次出现位置的索引

char charAt(int index)

返回字符串中index位置上的字符,其中index的取值范围是

0~(字符串长度-1)

Boolean endsWith(String suffix)

判断此字符串是否以指定的字符串结尾

int length()

返回此字符串的长度

boolean equals(Object anObject)

将此字符串与指定的字符串比较

boolean isEmpty()

判断字符串长度是否为0,如果为0则返回true,反之则返回flase

boolean startsWith(String prefix)

判断此字符串是否以指定的字符串开始

boolean contains(CharSequence cs)

判断此字符串中是否包含指定的字符序列

String toLowerCase()

使用默认语言环境的规则将String中的所有字符都转换为小写

String toUpperCase()

使用默认语言环境的规则将String中的所有字符都转换为大写

static String valueOf(int i)

int变量i转换成字符串

char[] toCharArray()

将此字符串转换为一个字符数组

String replace(CharSequence oldstr, CharSequence newstr)

返回一个新的字符串,它是通过用 newstr替换此字符串

中出现的所有 oldstr得到的

String  originalString.replaceAll(regex, replacement);

originalString 是要进行替换操作的原始字符串;

regex 是一个正则表达式,用于匹配要替换的内容;

replacement 是替换后的新内容。

这个方法返回一个新的字符串,其中所有与正则表达式匹配的内容都被替换为指定的新内容。

String[] split(String regex)

根据参数regex将原来的字符串分割为若干个子字符串

String substring(int beginIndex)

返回一个新字符串,它包含从指定的beginIndex处开始,

直到此字符串末尾的所有字符

String substring(int beginIndex, int endIndex)

返回一个新字符串,它包含从指定的beginIndex处开始,

直到索引endIndex-1处的所有字符

String trim()

返回一个新字符串,它去除了原字符串首尾的空格

示例代码:

public class myclass {
    public static void main(String[] args) {
        // 示例字符串
        String str = "Java编程很有趣!";

        // 判断是否以指定前缀开头
        boolean startsWith = str.startsWith("Java");
        System.out.println("是否以 'Java' 开头:" + startsWith);

        // 判断是否以指定后缀结尾
        boolean endsWith = str.endsWith("趣!");
        System.out.println("是否以 '趣!' 结尾:" + endsWith);

        // 获取字符在字符串中的位置
        int indexOfChar = str.indexOf('编');
        System.out.println("'编' 在字符串中的位置:" + indexOfChar);

        // 替换子字符串
        String replacedStr = str.replace("很有趣", "非常有趣");
        System.out.println("替换后的字符串:" + replacedStr);

        // 将字符串转换为大写
        String uppercaseStr = str.toUpperCase();
        System.out.println("转换为大写字母:" + uppercaseStr);
        
        // 将字符串转换为小写
        String lowercaseStr = str.toLowerCase();
        System.out.println("转换为小写字母:" + lowercaseStr);
        
        // 拆分字符串为字符数组
        char[] chars = str.toCharArray();
        System.out.println("拆分后的字符数组:");
        for (char c : chars) {
            System.out.println(c);
        }

        // 检查字符串是否为空
        boolean isEmpty = str.isEmpty();
        System.out.println("字符串是否为空:" + isEmpty);

        // 字符串按照指定分隔符拼接
        String[] words = {"Java", "编程", "很有趣"};
        String joinedStr = String.join("-", words);
        System.out.println("拼接后的字符串:" + joinedStr);

        // 去除字符串中的空格
        String stringWithSpaces = "  Java 编程 很有趣  ";
        String trimmedStr = stringWithSpaces.replaceAll("\\s", "");
        System.out.println("去除空格后的字符串:" + trimmedStr);
    }
}

运行:

是否以 'Java' 开头:true
是否以 '趣!' 结尾:true
'编' 在字符串中的位置:4
替换后的字符串:Java编程非常有趣!
转换为大写字母:JAVA编程很有趣!
转换为小写字母:java编程很有趣!
拆分后的字符数组:
J
a
v
a
编
程
很
有
趣
!
字符串是否为空:false
拼接后的字符串:Java-编程-很有趣
去除空格后的字符串:Java编程很有趣

猜你喜欢

转载自blog.csdn.net/m0_74293254/article/details/132256430