黑马程序员技术交流社区

标题: String中replace()方法 [打印本页]

作者: 胡文彬    时间: 2014-3-15 16:45
标题: String中replace()方法
如下代码
public class StringMethods {

public static void main(String[] args)
{
  String s="Hello Java";
  String s1=s.replace("Java", "viva");
  String s2=s.replace("", "e");
  sop(s);
        sop(s1);
  sop(s2);
}
public static void sop(Object obj)
{
  System.out.println(obj);
}
}
打印结果为:
Hello Java
Hello viva
eHeeeleleoe eJeaeveae  //为什么会出现这个结果?
作者: 王浩龙    时间: 2014-3-15 17:06
  1. public class StringMethods {

  2. public static void main(String[] args) {
  3.    String s="Hello Java";
  4.    String s1=s.replace("Java", "viva");
  5.    String s2=s.replace(" ", "e");//此处的“”,变成了“ ”
  6.    sop(s);
  7.          sop(s1);
  8.    sop(s2);
  9.         }
  10. public static void sop(Object obj){
  11.    System.out.println(obj);
  12.         }
  13. }
复制代码
通过结果可以看到,s.replace("", "e");这句话是在每个字符之间都加了一个e,你把e去掉就可以看到Hello java
因为你的双引号之间什么都没有,所以才会出现在每个字母的前后都加上e。
不知道你是不是想把中间的空格换成e。
我重写了一下代码你看一下

作者: liushui12344    时间: 2014-3-15 17:16
这段程序最后一个输出语句规则中是按照每个字符前都存在一个空字符来执行,故出现此种现象
作者: ς高眼光の目标    时间: 2014-3-15 19:28
String s2=s.replace("", "e");中前面被替换什么东西也没有,所以在每个字符中都插进一个




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