当前位置:编程学习 > JAVA >>

字符串替换问题


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

//怎么把${UserName}替换成"zxd";
--------------------编程问答-------------------- 替换字符串中某些参数形成新的字符串  --------------------编程问答--------------------
String s = "尊敬的${UserName}用户";
String userName = "zxd";
String replace = s.replace("${UserName}", userName);
System.out.println(replace); --------------------编程问答-------------------- String s="尊敬的${UserName}用户
String userName="zxd";
s = s.replace("${UserName}", userName);
System.out.println(s); --------------------编程问答-------------------- 感觉楼主的意思是freemaker的技术。 --------------------编程问答--------------------
引用 2 楼 PHIILL_01 的回复:
String s = "尊敬的${UserName}用户";
String userName = "zxd";
String replace = s.replace("${UserName}", userName);
System.out.println(replace);


这样不行。。 --------------------编程问答--------------------
String s="尊敬的${UserName}用户
String userName="zxd";
s.replace("${UserName}", userName);
System.out.println(s);
 
//怎么把${UserName}替换成"zxd";

这样写不行的。。。所以才来问,别和我写的一样额 --------------------编程问答-------------------- 好吧,我错了,没看清,跪求原谅,谢谢大家了 --------------------编程问答-------------------- 使用这个方法可以替换。
org.apache.commons.lang3.StringUtils.replace(str, "${userName}", value);

但是需要导入commons-lang3-3.1.jar这个包,你网上下载一下 --------------------编程问答--------------------
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);
}
--------------------编程问答-------------------- 菜鸟表示围观!!!mark! --------------------编程问答-------------------- System.out.println(s.replace("\\$\\{UserName\\}", userName)); --------------------编程问答--------------------
引用 5 楼 zxd297139205 的回复:
引用 2 楼 PHIILL_01 的回复:String s = "尊敬的${UserName}用户";
String userName = "zxd";
String replace = s.replace("${UserName}", userName);
System.out.println(replace);

这样不行。。

我试过了可以的,jdk7楼主什么版本? --------------------编程问答-------------------- 把替换后的值重新赋值才行 --------------------编程问答-------------------- 楼主,你确定不可以么?还是你把 replace 用成了 replaceAll 了? --------------------编程问答-------------------- 同意2L,3L的观点,楼主 你打印的是s , s是String字符串,String字符串是不可改变的,所以你不论怎么操作它,它还是原来的它,不向StringBuffer  StringBuilder.
--------------------编程问答-------------------- 1.如果在JSP或freemark上不用替换,
2.如果是JAVA代码中,可以考虑使用String.format(string,...object);
  String.format("user:%s,age:%d","userName",20); --------------------编程问答-------------------- String.replace()方法的意思是:  不会修改源字符串的内容,而把替换后的新字符串作为返回值返回。 --------------------编程问答-------------------- 楼主我在1楼说的方法,你看了吗 ?

那个类,可以把你的参数 替换 成你想要的字符串。
--------------------编程问答-------------------- --------------------编程问答--------------------
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 --------------------编程问答-------------------- 用一个字符串类型的变量再接收下替换换的值,将其打印就可以实现预想结果 --------------------编程问答-------------------- s.replace("${UserName}", userName);
s = s.replace("${UserName}", userName);
楼主可以看下这里,感觉不行的原因就是这,因为String是字符串常量,不可以被更改,替换后的字符串只是在内存中开辟了一个空间,并没有指向某个变量,所以用第二种写法将引用指向某个变量就好了 --------------------编程问答-------------------- 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主要想干什么? --------------------编程问答-------------------- 首先,少个引号;

其次,你把 replace 用成了 replaceAll 了 --------------------编程问答-------------------- String s="尊敬的${UserName}用户
String userName="zxd";
s.replace(${UserName}, userName);
System.out.println(s);
当然 要把引号去了,~~~ --------------------编程问答-------------------- 除
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,