String s="尊敬的${UserName}用户
String userName="zxd";
s.replace("${UserName}", userName);
System.out.println(s);//怎么把${UserName}替换成"zxd";

解决方案 »

  1.   


    String s = "尊敬的${UserName}用户";
    String userName = "zxd";
    String replace = s.replace("${UserName}", userName);
    System.out.println(replace);
      

  2.   

    String s="尊敬的${UserName}用户
    String userName="zxd";
    s = s.replace("${UserName}", userName);
    System.out.println(s);
      

  3.   

    感觉楼主的意思是freemaker的技术。
      

  4.   

    String s="尊敬的${UserName}用户
    String userName="zxd";
    s.replace("${UserName}", userName);
    System.out.println(s);
     
    //怎么把${UserName}替换成"zxd";
    这样写不行的所以才来问,别和我写的一样额
      

  5.   

    使用这个方法可以替换。
    org.apache.commons.lang3.StringUtils.replace(str, "${userName}", value);但是需要导入commons-lang3-3.1.jar这个包,你网上下载一下
      

  6.   


    public static void main(String args[]) {
    String s = "尊敬的${UserName}A${UserName}${UserName";
    String userName = "zxd";
    repStr(s, "${UserName}", userName);
    }
    //用 takeplace替换part
    public static void repStr(String source, String part, String takeplace) {
    int len = part.length();
    StringBuffer sb = new StringBuffer();
    StringBuffer result = new StringBuffer();
    for (int i = 0;; i++) {
    if (i > source.length() - len) {
    result.append(source.subSequence(i, source.length()));
    break;
    } else {
    for (int j = i; j <= source.length(); j++) {
    if (sb.length() < len) {
    sb.append(source.charAt(j));
    } else {
    if (sb.toString().equals(part)) {
    result.append(takeplace);
    i += len - 1;
    } else {
    result.append(source.charAt(i));
    }
    sb = new StringBuffer();
    break;
    } }
    } }
    System.out.println(result);
    }
      

  7.   

    System.out.println(s.replace("\\$\\{UserName\\}", userName));
      

  8.   

    我试过了可以的,jdk7楼主什么版本?
      

  9.   

    楼主,你确定不可以么?还是你把 replace 用成了 replaceAll 了?
      

  10.   

    同意2L,3L的观点,楼主 你打印的是s , s是String字符串,String字符串是不可改变的,所以你不论怎么操作它,它还是原来的它,不向StringBuffer  StringBuilder.
      

  11.   

    1.如果在JSP或free上不用替换,
    2.如果是JAVA代码中,可以考虑使用String.format(string,...object);
      String.format("user:%s,age:%d","userName",20);
      

  12.   

    String.replace()方法的意思是:  不会修改源字符串的内容,而把替换后的新字符串作为返回值返回。
      

  13.   

    public static void main(String[] args) {
    String s = "尊敬的${UserName}用户";
    String userName = "zxd";
    String replace = s.replace("${UserName}", userName);
    System.out.println(replace);// TODO Auto-generated method stub }
    这样可行,jdk5
      

  14.   

    s.replace("${UserName}", userName);
    s = s.replace("${UserName}", userName);
    楼主可以看下这里,感觉不行的原因就是这,因为String是字符串常量,不可以被更改,替换后的字符串只是在内存中开辟了一个空间,并没有指向某个变量,所以用第二种写法将引用指向某个变量就好了
      

  15.   

    public static void main(String[] args) {
            String s = "尊敬的${UserName}用户";
            String userName = "zxd";
            String replace = s.replace("${UserName}", userName);
            System.out.println(replace);// TODO Auto-generated method stub
     
        }
    jdk5和6都可以!lz主要想干什么?
      

  16.   

    首先,少个引号;其次,你把 replace 用成了 replaceAll 了
      

  17.   

    String s="尊敬的${UserName}用户
    String userName="zxd";
    s.replace(${UserName}, userName);
    System.out.println(s);
    当然 要把引号去了,~~~