java转义

一些常见的转义

\ 反斜杠
\t 间隔
\n 换行
\r 回车
\d 数字 等价于
\D 非数字 等价于
\s 空白符号
\S 非空白符号
\w 单独字符
\W 非单独字符
\f 换页符
\e Escape
\b 一个单词的边界
\B 一个非单词的边界
\G 前一个匹配的结束

一些具体使用场景

1、如果用“.”作为分隔的话必须是如下写法String.split("\\."),这样才能正确的分隔开不能用String.split(".");

2、如果用“|”作为分隔的话必须是如下写法String.split("\\|"),这样才能正确的分隔开不能用String.split("|");“.”和“|”都是转义字符必须得加"\";

3、如果在一个字符串中有多个分隔符可以用“|”作为连字符比如“acount=?and uu =? or n=?”,把三个都分隔出来可以String.split("and|or");使用String.split方法分隔字符串时分隔符如果用到一些特殊字符可能会得不到我们预期的结果。 我们看jdk doc中说明

public String[] split(String regex)
 Splits this string around matches of the given regular expression. 

参数regex是一个 regular-expression的匹配模式而不是一个简单的String他对一些特殊的字符可能会出现你预想不到的结果比如测试下面的代码用竖线 | 分隔字符串你将得不到预期的结果

  String[] aa = "aaa|bbb|ccc".split("|");
    //String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果
    for (int i = 0 ; i <aa.length ; i++ ) {
      System.out.println("--"+aa[i]); 
    } 

用竖 * 分隔字符串运行将抛出java.util.regex.PatternSyntaxException异常用加号 + 也是如此。

   String[] aa = "aaa*bbb*ccc".split("*");
    //String[] aa = "aaa|bbb|ccc".split("\\*"); 这样才能得到正确的结果    
    for (int i = 0 ; i <aa.length ; i++ ) {
      System.out.println("--"+aa[i]); 
    }  

显然+ * 不是有效的模式匹配规则表达式用"\*" “\+“转义后即可得到正确的结果。”|” 分隔串时虽然能够执行但是却不是预期的目的"\|“转义后即可得到正确的结果。还有如果想在串中使用”“字符则也需要转义.首先要表达"aaaa\bbbb"这个串就应该用"aaaa\bbbb”,如果要分隔就应该这样才能得到正确结果String[] aa = “aaa\bbb\bccc”.split("\\");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值