String

String

构造方法

构造方法 说明
String() 创建一个空白字符串对象,不含有任何内容
String(String) 把字符串常量值转成字符串(新创建的字符串是参数字符串的副本)
String(char[]) 根据字符数组的内容,来创建字符串对象
String(char[],int,int) 把字符数组的一部分转成字符串(起始位置,长度)
String(byte[]) 根据字节数组的内容,来创建字符串对象
String(byte[] ,int,int) 把字节数组的一部分转成字符串(起始位置,长度)
String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的String
String(byte[] bytes,String charsetName) 通过指定的字符集解码指定的字节数组来构造新的String

常用方法

String 类是 Java 中非常常用的类之一,它包含了许多常用的方法来处理字符串。一些常用的String方法包括:

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

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

  3. indexOf(String str):返回指定子字符串/字符在字符串中第一次出现的位置(如果没有出现就返回-1)。

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

  5. substring(int beginIndex, int endIndex):返回从指定索引开始到指定索引结束的子字符串(返回值不包含结束的字符)。

    第一个参数int为开始的索引,对应String数字中的开始位置,
    第二个参数是截止的索引位置,对应String中的结束位置
    1、取得的字符串长度为:endIndex - beginIndex;
    2、从beginIndex开始取,到endIndex结束,从0开始数,其中不包括endIndex位置的字符

  6. toLowerCase():将字符串中的所有字符转换为小写。

  7. toUpperCase():将字符串中的所有字符转换为大写。

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

  9. equals(Object obj):比较字符串是否相等,严格区分大小写(用户名和密码)。

    字符串比较是否相等不能用 ==

  10. startsWith(String prefix):检查字符串是否以指定的前缀开始(boolean)

    public boolean startsWith(String prefix, int offset)
    从指定的偏移位置开始检查字符串是否以指定前缀开头
    原字符串是否从 offset+1 开始以 prefix 为开头

  11. endsWith(String suffix):检查字符串是否以指定的后缀结尾(boolean)

  12. replace(char oldChar, char newChar):用新字符替换字符串中的旧字符。

    replaceFirst() 用于替换字符串中第一个匹配的子串。
    第一个参数是要替换的子串,第二个参数是用于替换的新字符串。
    返回一个新的字符串,原始字符串不会被修改

  13. split(String regex):String[] 根据指定的正则表达式将字符串拆分为子字符串数组。
    String[] name_cont = values[i].split("\\(");

  14. contains(CharSequence s):检查字符串是否包含指定的字符序列。

  15. char[] toCharArray() :将一个字符串转化为字符数组。

  16. compareTo():可以比较两个字符串是否相同。如果两个字符串相等,compareTo()方法会返回 0 。
    方法是用来比较两个字符串的大小关系的方法。
    (比较规则是按照字典顺序比较字符串的 Unicode 值,即比较字符串中每个字符的 Unicode 值,直到找到不同的字符为止)
    该方法返回一个整数值,表示两个字符串的大小关系。
    如果两个字符串相等,返回值为 0 ;
    如果调用该方法的字符串小于参数字符串,返回值为负数;
    如果调用该方法的字符串大于参数字符串,返回值为正数。

例如,对于字符串”abc”和”abd”,从第一个字符开始比较,第一个字符相同,继续比较第二个字符,发现’b’比’d’小,因此”abc”在字典序上排在”abd”之前,返回负整数。

  1. public boolean matches(String regex) 用于匹配正则表达式的方法。该方法用于判断一个字符串是否完全匹配指定的正则表达式。

静态方法

String 类中常用的静态方法:

  1. valueOf() :将不同类型的数据转换为字符串。

    1
    2
    int num = 42;
    String str = String.valueOf(num);
  2. format() :使用指定的格式字符串和参数创建一个格式化的字符串。

    1
    String formattedString = String.format("Hello, %s!", "World");
  3. join() :将多个字符串用指定的分隔符连接起来

    1
    2
    3
    4
    String joinedString = String.join("-", "Java", "is", "awesome");

    String[] words = {"Hello", "World", "Java"};
    String result = String.join(", ", words);
  4. isEmpty() :检查字符串是否为空(长度为0)。

    1
    boolean empty = String.isEmpty("Hello");
  5. substring() :截取字符串的子串。

    1
    String subString = String.substring("Hello, World", 7);
  6. split() :根据指定的正则表达式将字符串分割成字符串数组。

    1
    String[] parts = String.split("Java is awesome", "\\s");
  7. toLowerCase()toUpperCase() :将字符串转换为小写或大写。

    1
    2
    String lowerCase = String.toLowerCase("HELLO");
    String upperCase = String.toUpperCase("world");
  8. charAt() :返回指定索引处的字符。

    1
    char ch = String.charAt("Hello", 1);
  9. valueOf() :将字符数组或字符序列转换为字符串。

    1
    2
    char[] charArray = {'H', 'e', 'l', 'l', 'o'};
    String str = String.valueOf(charArray);

这些静态方法可以帮助开发人员方便地处理字符串,进行格式化、拼接、截取等操作。

注意:
length():用于获取字符串的长度。length()是String类的一个方法,可以用于返回字符串中字符的数量。
length:用于获取数组的长度。length是数组的一个属性,可以用于返回数组(字符串数组也是)中元素的数量。

Kotlin中
trim() 函数是String类的一个方法。它用于去除字符串两端的空格。(注意只是两端的字符,中间的空格无法删除)
split(“ ”) 字符串按照指定的分隔符进行拆分,并返回拆分后的子字符串数组
last() 方法的作用是返回集合中的最后一个元素。注意:只有Kotlin中有,java中没有
注意:
在 Kotlin 中,String类的length是一个属性而不是方法。因此,可以直接通过splitWords.last().length来获取字符串的长度。

Character

Character类中常用的方法包括:

  1. isLetter(char c) - 判断字符是否是字母
  2. isDigit(char c) - 判断字符是否是数字
  3. isWhitespace(char c) - 判断字符是否是空白字符(空格、制表符、换行符等)
  4. isUpperCase(char c) - 判断字符是否是大写字母
  5. isLowerCase(char c) - 判断字符是否是小写字母
  6. toUpperCase(char c) - 将字符转换为大写
  7. toLowerCase(char c) - 将字符转换为小写
  8. isLetterOrDigit(char c) - 判断字符是否是字母或数字
  9. isWhitespace(char c) - 判断字符是否是空白字符
  10. getNumericValue(char c) - 获取字符的数值表示

这些方法可以帮助我们对字符进行各种类型的判断和转换操作。

StringBuilder、StringBuffer

StringBuilder和StringBuffer都是用来处理字符串的类,它们的主要区别在于线程安全性。
StringBuffer是线程安全的,所有的方法都是同步的,适合在多线程环境中使用。
而StringBuilder是非线程安全的,不保证线程安全,但在单线程环境中性能更好。

StringBuilder 类中常用的方法有:

  1. append(String str):将指定的字符串追加到当前StringBuilder对象的末尾。
  2. insert(int offset, String str):将指定的字符串插入到当前StringBuilder对象的指定位置。
  3. delete(int start, int end):删除当前StringBuilder对象中指定位置范围的字符。
  4. replace(int start, int end, String str):替换当前StringBuilder对象中指定位置范围的字符为指定的字符串。
  5. reverse():将当前StringBuilder对象中的字符顺序反转。

    翻转字符串:
    String reversWord = new StringBuilder(word).reverse().toString()

  6. toString():将当前StringBuilder对象转换为String类型。
  7. length():返回当前StringBuilder对象中字符序列的长度。
  8. charAt(int index):返回当前 StringBuilder 对象中指定位置的字符。
  9. setCharAt(int index, char ch):将当前 StringBuilder 对象中指定位置的字符设置为指定的字符。
  10. indexOf(String str):返回当前 StringBuilder 对象中第一次出现指定字符串的位置。
  11. setLength(int newLength):设置StringBuilder对象的长度,如果指定的新长度比当前长度小,则会截断StringBuilder对象中的字符;如果指定的新长度比当前长度大,则会在末尾填充空字符直到达到新长度。

这些方法可以用于对StringBuilder对象进行各种字符串操作,如追加、插入、删除、替换、反转等。

StringTokenizer

在Java中,StringTokenizer 是一个用于分割字符串的类。它允许将一个字符串按照指定的分隔符(默认为空格、制表符、换行符等空白字符)进行分割,将分割后的部分作为单独的标记或单词。StringTokenizer 类提供了多个方法来获取和处理这些标记。

常用方法

  1. **StringTokenizer(String str)**:构造一个新的 StringTokenizer 对象,使用指定的字符串作为要分割的字符串。
  2. **hasMoreTokens()**:检查是否还有未处理的标记。
  3. **nextToken()**:返回下一个标记。
  4. **countTokens()**:返回剩余未处理的标记个数。

示例

1
2
3
4
5
6
7
String str = "Java is a programming language";
StringTokenizer tokenizer = new StringTokenizer(str);

while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
System.out.println(token);
}

在上面的示例中,我们创建了一个 StringTokenizer 对象来分割字符串 “Java is a programming language”。通过循环调用 hasMoreTokens()nextToken() 方法,我们可以逐个获取分割后的标记并输出。

需要注意的是,StringTokenizer 类已经被标记为过时(deprecated),推荐使用 String.split() 方法或者 java.util.Scanner 类来代替。这是因为 StringTokenizer 在处理字符串时比较繁琐,并且不支持正则表达式作为分隔符。因此,建议使用更现代的方法来处理字符串分割操作。

正则表达式

  1. public boolean matches(String regex) 用于匹配正则表达式的方法。该方法用于判断一个字符串是否完全匹配指定的正则表达式。
  2. split(String regex):String[] 根据指定的正则表达式将字符串拆分为子字符串数组。

在正则表达式中,常用的字符包括:

  1. 普通字符:普通字符就是除了元字符之外的所有字符,例如字母、数字、符号等。

  2. 元字符:元字符是正则表达式中具有特殊含义的字符,常用的元字符包括:

    • .:匹配任意单个字符,除了换行符。
    • ^:匹配输入字符串的开始位置。
    • $:匹配输入字符串的结束位置。
    • *:匹配前面的元素零次或多次。
    • +:匹配前面的元素一次或多次。
    • ?:匹配前面的元素零次或一次。
    • []:匹配方括号中任意一个字符。
    • ():分组匹配,可以使用|进行逻辑或操作。
    • \:转义字符,用于匹配特殊字符(在Java的正则表达式中,两个\ \代表其他语言中的一个\ )。
  3. 量词:用于指定匹配次数,常用的量词包括:

    • {n}:匹配前面的元素恰好n次。
    • {n,}:匹配前面的元素至少n次。
    • {n,m}:匹配前面的元素至少n次,最多m次。
    • ?:匹配前面的元素零次或一次。
    • *:匹配前面的元素零次或多次。
    • +:匹配前面的元素一次或多次。
  4. 特殊字符类:用于匹配特定类型的字符,例如:

    • \d:匹配数字字符,相当于[0-9]
    • \D:匹配非数字字符,相当于[^0-9]
    • \w:匹配单词字符,包括字母、数字、下划线,相当于[A-Za-z0-9_]
    • \W:匹配非单词字符,相当于[^A-Za-z0-9_]
    • \s:匹配空白字符,包括空格、制表符、换行符等。
    • \S:匹配非空白字符。

这些是正则表达式中常用的字符和元字符,可以根据具体的需求组合使用来实现复杂的匹配逻辑。

应用

.*\d+.*的含义是匹配包含至少一个数字的字符串
.*:匹配任意字符零次或多次,即可以匹配数字前面的任意字符。
\d+:匹配一个或多个数字。
.*:再次匹配任意字符零次或多次,即可以匹配数字后面的任意字符。

要匹配只含数字的字符串,可以使用如下正则表达式:

1
^\\d+$

其中:

  • ^ 表示匹配字符串的开头
  • \d 表示匹配数字字符
  • + 表示匹配前面的元素一次或多次
  • $ 表示匹配字符串的结尾

因此,^\d+$ 可以匹配只含数字的字符串。

常见用法

从字符串句子中摘出字符串单词

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2025 Annie
  • Visitors: | Views:

嘿嘿 请我吃小蛋糕吧~

支付宝
微信