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[] split(String regex)

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

String substring(int beginIndex)

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

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

String substring(int beginIndex, int endIndex)

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

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

String trim()

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

示例代码:

public class StringExample {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "World";

        // 使用length()方法获取字符串长度
        int length = str1.length();
        System.out.println("str1的长度为:" + length);

        // 使用concat()方法连接两个字符串
        String result = str1.concat(str2);
        System.out.println("连接后的字public class myclass {
    public static void main(String[] args) {
        String str = "Hello, World!";
        
        // 字符串长度相关方法
        int length = str.length();
        System.out.println("字符串长度:" + length);
        
        boolean isEmpty = str.isEmpty();
        System.out.println("字符串是否为空:" + isEmpty);
        
        // 字符串比较方法
        boolean isEqual = str.equals("hello, world!");
        System.out.println("字符串是否相等:" + isEqual);
        
        boolean isIgnoreCaseEqual = str.equalsIgnoreCase("hello, world!");
        System.out.println("忽略大小写比较字符串是否相等:" + isIgnoreCaseEqual);
        
        int compareToResult = str.compareTo("Hello");
        System.out.println("字符串与\"Hello\"的字典顺序比较结果:" + compareToResult);
        
        // 字符串查找方法
        boolean contains = str.contains("World");
        System.out.println("字符串是否包含\"World\":" + contains);
        
        int indexOf = str.indexOf('o');
        System.out.println("'o'在字符串中第一次出现的索引位置:" + indexOf);
        
        int lastIndexOf = str.lastIndexOf('o');
        System.out.println("'o'在字符串中最后一次出现的索引位置:" + lastIndexOf);
        
        boolean startsWith = str.startsWith("He");
        System.out.println("字符串是否以\"He\"开头:" + startsWith);
        
        boolean endsWith = str.endsWith("d!");
        System.out.println("字符串是否以\"d!\"结尾:" + endsWith);
        
        // 字符串提取方法
        char firstChar = str.charAt(0);
        System.out.println("字符串的第一个字符:" + firstChar);
        
        String subString1 = str.substring(7);
        System.out.println("从索引位置7开始到末尾的子字符串:" + subString1);
        
        String subString2 = str.substring(7, 12);
        System.out.println("从索引位置7开始到索引位置12结束的子字符串:" + subString2);
        
        // 字符串替换方法
        String replacedString = str.replace('o', 'O');
        System.out.println("将字符串中的'o'替换为'O'后的结果:" + replacedString);
        
        String regexReplacedString = str.replaceAll("o", "O");
        System.out.println("将字符串中所有的'o'替换为'O'后的结果:" + regexReplacedString);
        
        // 字符串拆分与连接方法
        String[] splitStrings = str.split(",");
        System.out.println("通过','拆分后的字符串数组:");
        for (String s : splitStrings) {
            System.out.println(s);
        }
        
        String joinedString = String.join("-", "Java", "Programming", "Language");
        System.out.println("将多个元素用'-'连接成一个字符串:" + joinedString);
        
        // 大小写转换方法
        String upperCaseString = str.toUpperCase();
        System.out.println("转换为大写字母的字符串:" + upperCaseString);
        
        String lowerCaseString = str.toLowerCase();
        System.out.println("转换为小写字母的字符串:" + lowerCaseString);
    }
}
符串为:" + result);

        // 使用toUpperCase()方法将字符串转换为大写
        String uppercase = result.toUpperCase();
        System.out.println("转换为大写后的字符串为:" + uppercase);

        // 使用charAt()方法获取指定索引位置的字符
        char firstChar = str2.charAt(0);
        System.out.println("str2的第一个字符为:" + firstChar);

        // 使用substring()方法截取子字符串
        String substring = result.substring(6, 10);
        System.out.println("截取的子字符串为:" + substring);

        // 使用replace()方法替换字符串中的字符
        String replacedString = result.replace('o', 'x');
        System.out.println("替换后的字符串为:" + replacedString);
    }
}

运行:

字符串长度:13
字符串是否为空:false
字符串是否相等:false
忽略大小写比较字符串是否相等:true
字符串与"Hello"的字典顺序比较结果:8
字符串是否包含"World":true
'o'在字符串中第一次出现的索引位置:4
'o'在字符串中最后一次出现的索引位置:8
字符串是否以"He"开头:true
字符串是否以"d!"结尾:true
字符串的第一个字符:H
从索引位置7开始到末尾的子字符串:World!
从索引位置7开始到索引位置12结束的子字符串:World
将字符串中的'o'替换为'O'后的结果:HellO, WOrld!
将字符串中所有的'o'替换为'O'后的结果:HellO, WOrld!
通过','拆分后的字符串数组:
Hello
 World!
将多个元素用'-'连接成一个字符串:Java-Programming-Language
转换为大写字母的字符串:HELLO, WORLD!
转换为小写字母的字符串:hello, world!

你可能感兴趣的:(Java基础篇,java,开发语言)