zoukankan      html  css  js  c++  java
  • replace、replaceAll、replaceFirst的区别详解

    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

    “.”是正则表达式的元字符,匹配除换行符以外的任意字符,所以replaceAll、replaceFirst才出现了这样的结果。

    而replace没有用到正则表达式,但会把所有“.”替换掉,很多人可能会误解replace是替换单个,而replaceAll是替换全部,其实这是错的。replace只是没有用到正则表达式,但会替换所有匹配的字符串。

    那我不想用正则表达式去替换第一个字符串肿么办?”其实也很简单,只要将元字符串转义就行了。

    这里给个会被正则表达式识别的字符列表:

    .匹配除换行符以外的任意字符

    ^匹配字符串的开始

    $匹配字符串的结束

    *重复零次或更多次

    +重复一次或更多次

    ?重复零次或一次

    当然,正则可远不止这么点,个人建议花点时间去学习一下比较好~

    补充:String的split也是用到了正则表达式,使用的时候注意点哦!

    indexOf 方法 
    返回 String 对象内第一次出现子字符串的字符位置。 

  • 相关阅读:
    OC-字典
    作业
    block语法排序 遍历
    oc-NSArray
    oc之获取系统当前时间的方法
    修改mysql的默认字符集
    mysql查询结果添加序列号
    PHP Socket 编程过程详解
    一篇详细的 Mysql Explain 详解
    阿里云云主机挂载数据盘,格式化硬盘(新购云主机)(转)
  • 原文地址:https://www.cnblogs.com/zeze/p/5010022.html
Copyright © 2011-2022 走看看