Java中的常用字符串操作

本文深入讲解Java中字符串的各种操作,包括子串获取、拼接、不可变性、大小写转换、长度获取、空格去除及替换等。通过实例演示如何使用String类的方法,帮助读者掌握字符串处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 没有内置的字符串类型, 而是在标准 Java类库中提供了 一个预定义类,叫做 String。

获得子串

String类的 substring方法可以从一个较大的字符串提取出一个子串。

  • substring(int begin, int end);
    begin 为开始索引的位置(包括
    end 为结束索引的位置(不包括
    String str = "Hello world"; 
    String s = str.substring(0, 3);  //s="Hel"
    
  • substring(int begin)
    begin 为开始索引的位置,一直到字符串结束的位置
    String str = "Hello world"; 
    String s = str.substring(3);  //s="lo world"
    

字符串拼接

  • Java语言允许使用 + 号连接(拼接)两个字符串

例:

String s1="ABC";
String s2="abc";
String s=s1+s2;  //s="ABCabc"
  • 也可以一个字符串与一个非字符串的值进行拼接(任意一个Java对象都可以转换成字符串)

例:

String s1 = "ABC";
int a = 13;
String s = s1+a;  //s="ABC13"
  • 这种特性通常用在输出语句中。

例:

System.out.println("The answer is " + answer); 
  • 如果需要把多个字符串放在一起,用一个定界符分隔,可以使用静态join方法。

有时候我们在输出的时候,需要用逗号隔开输出什么的可以用这种方法。
例:

String all = String.join(",","1","2","3");

输入为:1,2,3
括号中,第一个为分隔符号,其余的为要连接的字符串。

字符串不可变

判断字符串是否相等

  1. 区分大小写 equals 方法:

    s.equals(t)
    如果字符串 s 与字符串 t 相等,则返回true;否则,返回false

    需要注意的是,s 和 t 可以是字符串变量,也可以是字符串字面量。
    例如:
    “Hello”.equals(t);

  2. 不区分大小写 equalsIgnoreCase 方法:

    s.equalsIgnoreCase(t)
    “Hello”.equalsIgnoreCase(“hello”)

  • 一定不能使用 == 运算符来检测两个字符串是否相等!这个运算符只能够确定两个字符串是否放置在同一个位置上。

    如果虚拟机始终将相同的字符串共享, 就可以使用 == 运算符检测是否相等。但实际上只有字符串常量是共享的,而+ 或 substring 等操作产生的结果并不是共享的。因此,千万不要使用== 运算符测试字符串的相等性, 以免在程序中出现糟糕的 bug。从表面上看, 这种 bug 很像随机产生的间歇性错误。

字母大小写转换

字符串的 toLowerCase() 方法可将字符串中的所有字符从大写字母改写为小写字母,而 tuUpperCase() 方法可将字符串中的小写字母改写为大写字母。

String s="AbcdEF";
s.toLowerCase();   //s="abcdef"
s.toUpperCase();   //s="ABCDEF"

获取字符串长度

利用 String 类中的 length() 方法

String s="abc";
int len=s.length();  //len=3

检查字符串是否为空串:

if (s.length()==0)if (s.equals(""))

去除字符串中的空格

字符串中存在的首尾空格一般情况下都没有任何意义,如字符串“ Hello ”,但是这些空格会影响到字符串的操作,如连接字符串或比较字符串等,所以应该去掉字符串中的首尾空格,这需要使用 String 类提供的 trim() 方法。

例如:

String str = " hello ";
System.out.println(str.length());    // 输出 7
System.out.println(str.trim().length());    // 输出 5

注意:trim() 只能去掉字符串中前后的半角空格(英文空格),而无法去掉全角空格(中文空格)。

字符串的替换

  1. replace() 方法
    replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串)

    格式:
    字符串.replace(String oldChar, String newChar)

    其中,oldChar表示被替换的字符串;newChar表示用于替换的字符串。replace()方法会将字符串中所有oldChar替换成newChar。

    例如:

    String s="hello";
    s.replace("l","D");     //s="heDDo"
    
  2. replaceFirst() 方法
    replaceFirst() 方法用于将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串

    格式:
    字符串.replaceFirst(String regex, String replacement)
    其中,regex 表示正则表达式;replacement 表示用于替换的字符串。

    例如:

    String words = "hello java,hello php";
    String newStr = words.replaceFirst("hello","你好 ");
    System.out.println(newStr);    // 输出:你好 java,hello php
    
  3. replaceAll() 方法
    replaceAll() 方法用于将目标字符串中匹配某正则表达式的所有子字符串替换成新的字符串

    格式:
    字符串.replaceAll(String regex, String replacement)
    其中,regex 表示正则表达式,replacement 表示用于替换的字符串。

    例如:

    String words = "hello java,hello php";
    String newStr = words.replaceAll("hello","你好 ");
    System.out.println(newStr);    // 输出:你好 java,你好 php
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值