使用java字符串中的反斜杠和特殊符号的表示
2017-08-18 01:52
295 查看
今天在项目中使用Java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常:
上网找了一下错误的原因:在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示。这样,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\"。所以要想使用replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),则需要这样写:str.replaceAll("\\\\","");
写一段测试代码演示上面出现的异常:
使用上面的代码会导致
要想将"C:\
e114
盘"中的"\"替换成空字符串,正确的写法是:
这样就可以正常替换了。
可以使用正则表达式,
注意: |, ., &, *, + 是转义字符, 要加\\
(1) “|” 分隔串时虽然能够执行,但是却不是预期的目的,转义后即可得到正确的结果。
2
3
1
2
3
(2)星号 * 分隔字符串运行将抛出Java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。
2
3
4
1
2
3
4
(3)在串中使用”“字符,则也需要转义.首先要表达”aaaa\bbbb”这个串就应该用”aaaa\ \bbbb”,如果要分隔就应该这样才能得到正确结果:
1
(4) 还有就是点号”.”,也要首先转义才能得到正确的结果。
2
1
2
其余特殊字符未亲测,效果应该一样
这种方法没有亲测
点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C
2
3
4
5
1
2
3
4
5
如果是两个&&号那就//u0024//u0024了
1 java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \^
上网找了一下错误的原因:在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示。这样,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\"。所以要想使用replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),则需要这样写:str.replaceAll("\\\\","");
写一段测试代码演示上面出现的异常:
1 String s="C:\盘"; 2 s.replaceAll("\\","");
使用上面的代码会导致
1 java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \^
要想将"C:\
e114
盘"中的"\"替换成空字符串,正确的写法是:
1 s.replaceAll("\\\\","");
这样就可以正常替换了。
split
可以使用正则表达式,注意: |, ., &, *, + 是转义字符, 要加\\
使用特殊字符切割字符串的三种方法
一、转义字符
(1) “|” 分隔串时虽然能够执行,但是却不是预期的目的,转义后即可得到正确的结果。//String[] s = "aaa|bbb|ccc".split("|"); //正确方法如下 String[] s = "aaa|bbb|ccc".split("\\|");1
2
3
1
2
3
(2)星号 * 分隔字符串运行将抛出Java.util.regex.PatternSyntaxException异常,用加号 + 也是如此。
String[] aa = "aaa*bbb*ccc".split("*"); //正确方法如下 String[] aa = "aaa|bbb|ccc".split("\\*");1
2
3
4
1
2
3
4
(3)在串中使用”“字符,则也需要转义.首先要表达”aaaa\bbbb”这个串就应该用”aaaa\ \bbbb”,如果要分隔就应该这样才能得到正确结果:
String[] s = "aaa\\bbb\\bccc".split("\\\\");1
1
(4) 还有就是点号”.”,也要首先转义才能得到正确的结果。
二、把切割字符,赋给一个String变量中
String a = "&"; String[] s = "aaa&bbb&ccc".split(a);1
2
1
2
其余特殊字符未亲测,效果应该一样
三、使用转义字符
这种方法没有亲测点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C
String str2="a&b&c"; String strs[]=str2.split("//u0024"); for(String str:strs){ System.out.println(str); }1
2
3
4
5
1
2
3
4
5
如果是两个&&号那就//u0024//u0024了
相关文章推荐
- Java 使用正则表达式过滤字符串中的特殊字符
- javascript使用以下序列表示非字母字符或特殊标点符号,常用于弹出框、正则验证
- Java 截取反斜杠--java使用split拆分特殊字符
- 一个使用特殊符号分割的字符串解码方法(Delphi版)
- Java 截取反斜杠--java使用split拆分特殊字符
- 举例说明如何使用正则表达式去掉字符串中的一些特殊符号
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- Java学习笔记2:使用replaceAll()方法替换字符串中的反斜杠:左斜杠(\)和右斜杠(/)
- Java 截取反斜杠--java使用split拆分特殊字符
- Java 截取特殊符号前后字符串
- 使用stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号
- java 使用正则来过滤字符串中的特殊字符
- java 字符串分割处理split及特殊符号
- 10-OC中使用NSArray实现字符串以特殊符号的分割与连接
- java判断字符串是否全部由数字,大小写字母,特殊符号组成
- 使用java中replaceAll方法替换字符串中的反斜杠
- java 使用正则来过滤字符串中的特殊字符
- Java 截取反斜杠--java使用split拆分特殊字符
- Java 截取反斜杠--java使用split拆分特殊字符
- java字符串分割处理split及特殊符号