- Java.lang 包类
- Java.lang - 首页
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包额外内容
- Java.lang - 接口
- Java.lang - 错误
- Java.lang - 异常
- Java.lang 包实用资源
- Java.lang - 实用资源
- Java.lang - 讨论
Java - String replaceFirst() 方法
Java String replaceFirst() 方法用于将 String 对象中特定模式的第一次出现替换为给定值。
此方法接受正则表达式和替换字符串作为参数,搜索当前字符串中与指定正则表达式匹配的模式,并将第一次匹配项替换为给定的替换字符串。匹配子字符串的过程从索引 0 开始,这意味着字符串的开头。
在 Java 中,字符串是内部支持字符数组的对象。字符串是一种特殊的数组,它保存字符,由于数组是不可变的,因此字符串也是不可变的。
注意 − 请注意,如果替换字符串包含美元符号 ($) 或反斜杠 (\),结果可能与将其作为文字替换字符串处理的结果不同。
语法
以下是Java String replaceFirst() 方法的语法:
public String replaceFirst(String regex, String replacement)
参数
regex − 这是要与此字符串匹配的正则表达式。
replacement − 这是要替换每个匹配项的字符串。
返回值
此方法返回结果字符串。
使用正则表达式示例替换字符串的第一次出现
以下示例演示了使用正则表达式 '!!' 作为替换子字符串的 Java String replaceFirst() 方法的使用:
package com.tutorialspoint; public class StringDemo { public static void main(String[] args) { String str1 = "!!Tutorials!!Point", str2; String substr = "**", regex = "!!"; // prints string1 System.out.println("String = " + str1); /* replaces the first substring of this string that matches the given regular expression with the given replacement */ str2 = str1.replaceFirst(regex,substr); System.out.println("After Replacing = " + str2); } }
输出
如果编译并运行上述程序,它将产生以下结果:
String = !!Tutorials!!Point After Replacing = **Tutorials!!Point
使用正则表达式示例替换字符串的第一次出现
在下面的代码中,我们使用了 replaceFirst() 方法将字符串 '.' 替换为与正则表达式 \d 匹配的第一个子字符串:
package com.tutorialspoint; public class StringDemo { public static void main(String[] args) { String s = "Akash 2786 G"; String s1 = s.replaceFirst("\\d+", "."); System.out.println("The new string is: " + s1); } }
输出
如果编译并运行上面的程序,输出将显示如下:
The new string is: Akash . G
使用正则表达式示例替换特殊字符
正则表达式或普通字符串可以用作 replaceFirst() 方法的第一个参数。原因是普通字符串本身就是一个正则表达式。
正则表达式中有一些字符具有特定含义。这些被称为元字符。如果需要匹配包含这些元字符的子字符串,可以使用“\”转义这些字符。
package com.tutorialspoint; public class StringDemo { public static void main(String[] args) { String s = "h^k**dg^^kl*^"; // replacing the first "^ with "%" String s1 = s.replaceFirst("\\^", "%"); System.out.println("The replaced string now is: " + s1); } }
输出
运行上述程序后,输出结果如下:
The replaced string now is: h%k**dg^^kl*^
匹配字符串时出现异常示例
方法参数不允许为 null。NullPointerException 将如下例所示被抛出:
public class StringDemo { public static void main(String[] args) { String s = "Next time there won't be a next time after a certain time"; String s1 = s.replaceFirst("Next", null); System.out.println("The new string is: " + s1); } }
NullPointerException
上述程序的输出如下:
Exception in thread "main" java.lang.NullPointerException: replacement at java.base/java.util.regex.Matcher.replaceFirst(Matcher.java:1402) at java.base/java.lang.String.replaceFirst(String.java:2894) at StringDemo.main(StringDemo.java:4)
java_lang_string.htm
广告