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 对象内第一次出现子字符串的字符位置。 

  • 相关阅读:
    Android SQLite最简单demo实现(增删查改)
    最简单的自定义控件实现
    Android复杂自定义Listview实现
    Linux 下 实现 锐捷验证的方式
    Java EE学习路线
    ubuntu 12.04 配置-1
    Dream
    iOS UITextView设置富文本不能输入中文问题
    iOS UIScrollView滚动方法对比
    iOS 自定义View通知相关
  • 原文地址:https://www.cnblogs.com/zeze/p/5010022.html
Copyright © 2011-2022 走看看