首页 热点资讯 义务教育 高等教育 出国留学 考研考公

java中怎么替换string中的某个字符

发布网友 发布时间:2022-04-23 09:00

我来回答

4个回答

热心网友 时间:2022-06-18 18:44

/¥392931String这个对于程序原来说一定是最熟悉不过的,很多时候我们都习惯去使用String的原生方法去完成查找字符串、替换、删除,而正则表达式由于略显苦涩的语法常常被人忽略,其实很多时候使用正则表达式可以提高不少性能和节省资源。

一、正则表达式简述

正则表达式正则表达是Java中比较矛盾的知识点,因为使用起来可以很简单也可以相当地有难度,但是对于字符串操作来说应用得当则事半功倍,字符串查找,搜索,匹配,替换等等,正则表达式无所不能。而所谓正则表达式本质就是一个字符串(这个字符串按照一定的语法和规范被构造出来作为限定条件),其主要参与者——Pattern和Matcher:Pattern是Java正则表达式API中的主要入口,是程序语言中对这个特殊正则字符串的编译表示,需要使用正则表达式,第一步都是从构造Pattern 类开始,而Matcher是输入字符串进行解释和匹配操作的引擎,通过解释 Pattern 对 Character sequence 执行匹配操作(即Matcher负责完成字符串的查找、匹配、替换等操作。)

二、正则表达式基本语法

1、预留字符

限定符

说明

.    任意英文字母    

\    反斜杠, 单独的反斜杠做为转义字符,与其他特殊字符一起使用。如果想匹配反斜杠本身,需要转义。两个反斜杠实际匹配一个反斜杠n字符的8进制表示.n 在0至7之间取值    

nn    字符的8进制表示.n 在0至7之间取值    

mnn    字符的8进制表示. m 在0至3之间取值, n 在0至7之间取值    

\xhh    字符的16进制表示.    

\uhhhh    字符的16进制表示 0xhhhh. 对应unicode 编码字符    

\t    缩进符.    

\n    换行符 (unicode: ‘\u000A’)    

\r    回车符 (unicode: ‘\u000D’)    

\f    制表符 (unicode: ‘\u000C’)    

\a    警报(铃声)字符 (unicode: ‘\u0007′)    

\e    转义符 (unicode: ‘\u001B’)    

\cx    控制符 x    

\d    匹配任意数字 [0-9]    

\D    匹配任意非数字 [^0-9]    

\s    匹配任意空白符 (空格, 缩进, 换行,回车)    

\S    匹配任意非空白符    

\w    匹配任意单词    

\W    匹配任意非单词    

2、设置指定限定条件[](即“[]”表示的是中括符里的内容是条件)

限定符

说明

[a-z]    匹配小写a to z范围中任一个字符,又如[abc] 匹配 a, 或 b 或 c    

[A-Z]    匹配大写A to Z范围中任一个字符    

[a-zA-Z]    匹配小写a to z或大写A to Z范围中一个字符    

[0-9]    匹配小写0 to 9范围中一个字符    

[0-9a-z]    匹配小写0 to 9或a to z范围中一个字符    

[0-9[a-z]]    匹配小写0 to 9或a to z范围中一个字符(交集)    

[^abc]    匹配不是a,b,c 的字符,是否定匹配    

[a-zA-Z]    匹配a 到 z ,A到Z 直接的字符,是范围匹配    

[a-d[m-p]]    匹配a到d之间字符或 m到p之间字符,是并集匹配    

[a-z&&[def]]    匹配 d, e, 或 f. 是交集匹配 (这里是在范围 a-z和字符def之间取交集).    

[a-z&&[^bc]]    匹配a-z 之间所有字符,排除bc的字符。是减法匹配    

[a-z&&[^m-p]]    匹配a-z 之间所有字符,排除m-p之间的字符是减法匹配    

3、边界匹配

边界符

说明

^    匹配行首    

$    匹配行尾    

\b    匹配单词边界    

\B    匹配非单词边界    

\A    匹配文本开头    

\G    匹配前一匹配项结尾    

\Z    输入的结尾,仅用于最后的结束符(如果有的话)    

\z    匹配文本结尾    

4、逻辑操作符和量词表示

正则表达式支持少量的逻辑运算(与,或)。与操作是默认的,表达式 cmo,意味着c 与 m与o。 
或操作需要显示指定,用 | 表示。例如表达式 crazy|mo意味着crazy或 mo。

贪婪模式

饥饿模式

独占模式

说明

X?    X??    X?+    匹配0或1次,即出现X 0或者1次    

X*    X**?    X*+    匹配0或多次    

X+    X+?    X++    匹配1或多次    

X{n}    X{n}?    X{n}+    匹配n次    

X{n,}    X{n,}?    X{n,}+    匹配最少n次    

X{n, m}    X{n, m}?    X{n, m}+    匹配最少n次,最多m次    

三、正则表达式的应用

热心网友 时间:2022-06-18 18:44

看看如下代码和运行结果

String s = "my.test.txt";
System.out.println(s.replace(".", "#"));
System.out.println(s.replaceAll(".", "#"));
System.out.println(s.replaceFirst(".", "#"));   
 
运行结果:
 my#test#txt
 ###########
 #y.test.txt

热心网友 时间:2022-06-18 18:45

建议你使用StringBuilder来构建字符串,然后可以使用strBuilder.setCharAt(1, '');来修改某一字符。如果要将字符串的所有特定字符全部替换,string中可以使用replaceAll("","");方法。
使用stringBuilder构建字符串有着更好的操作性~

热心网友 时间:2022-06-18 18:45

String str = "123";

str = str.replaceAll("2","");//把2替换为空字符转

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com