string.split("@");
[单数]保留
[双数]替换
[单数]保留
[双数]替换
解决方案 »
- 【求助】关于登录验证跳转的问题
- 项目上线一段时间后响应速度变慢,有时出现卡死现象
- 谁能给我一点建议?
- hql语句with的详细用法
- org.apache.jasper.JasperException: Unable to read TLD "META-INF/c.tld" from JAR
- 急需技术人员!
- 读取spring配置文件问题!各位大大帮忙下哈
- 如何把AXISCLASSPATH添加到classpath中去
- 关于hibernate的一个小问题,马上给分!
- 这句话那里错了?
- 在tomcat里成功配置的连接池,我在struts-blank的基础上也用相同的方法配置却出错?
- 请教高手:struts中如何进行分页显示数据,最好能有源码?
public void test2() {
String a1 = "asfdas@name@kasjfaskfd@password@;lasjdfal;s @name@wewerw @leaveDate@;alskdjfaslkf";
String name = "mike";
String password = "1234";
String leaveDate = "2003-09-09"; System.out.println(a1);
a1 = replaceString(a1,"@name@",name);
a1 = replaceString(a1,"@password@",password);
a1 = replaceString(a1,"@leaveDate@",leaveDate);
System.out.println(a1);
} public String replaceString(String whole,String source,String dest) {
StringBuffer buff = new StringBuffer();
int pos0 = 0;
int pos1 = whole.indexOf(source,pos0); while(pos1 != -1) {
buff.append(whole.substring(pos0,pos1));
buff.append(dest);
pos0 = pos1 + source.length();
pos1 = whole.indexOf(source,pos0);
}
buff.append(whole.substring(pos0));
return buff.toString();
}
import java.util.*;public class AtReplace {
public AtReplace() {
} public static void main(String[] args) throws Throwable {
String a1 = "asfdas@name@kasjfaskfd@password@;lasjdfal;s @name@wewerw @leaveDate@;alskdjfaslkf";
StringBuffer result = new StringBuffer();
Map map = new HashMap(); map.put("@name@", "mike");
map.put("@password@", "1234");
map.put("@leaveDate@", "2003-09-09"); Pattern p = Pattern.compile("(@name@)|(@password@)|(@leaveDate@)");
Matcher m = p.matcher(a1);
while(m.find()) {
m.appendReplacement(result, (String)map.get(m.group()));
}
m.appendTail(result);
System.out.println(result);
}}
{
//if(source == null || args == null ||(args.length != source.
int start = 0;
StringBuffer buffer = new StringBuffer(source);
for(int i=0;i<args.length;i++)
{
int postion = source.indexOf("%",start);
if((postion == -1) || ((postion+1) == source.length()))
{
break;
}
switch(source.charAt(postion + 1))
{
case 's':
buffer.delete(postion,postion + 2);
buffer.insert(postion,args[i]);
break;
}
start = postion + args[i].length();
source = buffer.toString();
}
return source;
}
public static void main(String[] args)
{
System.out.println(replace("abc%s%s123%s",new String[]{"abc","cde","slfjslf"}));
System.out.println();
}这个比较通用, 不论个数的, 你把要替换的东西放到一个String 数组里在调用自定义的replace方法就可以了。这个例子是替换%s, 你可以改一下。