黑马程序员技术交流社区

标题: String replace方法内不同参数的异同 [打印本页]

作者: 戒爱    时间: 2014-2-20 23:12
标题: String replace方法内不同参数的异同
String replace(oldChar,newChar)
String replace(charSequence目标,charSequence替换)
这两个有什么不一样的地方,使用时怎么做选择?
作者: 徐老爹    时间: 2014-2-20 23:31
首先给你看看API文档的描述,
replace(char oldChar, char newChar)
          返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
     举例:"mesquite in your cellar".replace('e', 'o')
         returns "mosquito in your collar"
replace(CharSequence target, CharSequence replacement)
          使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
     
简单点说上面替换的主要是单个字符,而下面可以用单个字符来替换字符子串(并且是从左往右的顺序)。
作者: kkopopo    时间: 2014-2-20 23:47
本帖最后由 kkopopo 于 2014-2-20 23:48 编辑

replace(char oldChar, char newChar)
String replace(String target,String replacement)
楼主我这样写你应该明白了吧  
CharSequence 是String实现了接口!
作者: luoanjade    时间: 2014-2-21 00:00
本帖最后由 luoanjade 于 2014-2-21 00:17 编辑

楼上说的就是API里面的内容,先顶一下!
上面重载的replace(char oldChar, char newChar)和replace(CharSequence target, CharSequence replacement) 这两个方法:
首先,从参数来看,前者是一个简单的数据类型,后者是个接口;
其次,前者替换的是单个字符,就是楼上举的例子那样。
CharSequence 是一个接口,它的已有实现类:CharBuffer, Segment, String, StringBuffer, StringBuilder
由此可以举个例子就知道了:
    String str = "aaaaaaaqwccccccqweeeeeee";
    StringBuffer sb1 = new StringBuffer("qw");
    StringBuilder sb2 = new StringBuilder ("BB");
    String newStr = str.replace(sb1,sb2);
这样返回的结果是:aaaaaaaBBccccccBBeeeeeee
简言之,就是前者替换单个字符,后者替换子字符串。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2