http://www.csdn.net/Expert/TopicView1.asp?id=714396
解决方案 »
- 一段有关容器的代码,执行有问题。请高人帮忙看下。谢谢了!
- 在eclipse的debug窗口,为什么tomcat要开这么多线程?
- 请问在一个Panel上怎么使回车键有Tab键的功能?
- 请问System.exit(1)是什么意思?那个小括号里的“1”代表什么意思?
- 不同的系统string在内存中的内容会不同吗?
- 【请教】如何把已知的字符串名称当作类的对象的名称??
- 请问JTABLE在APPLET里可以正常显示吗?
- 函数的参数问题 ... 求科普!
- 请java高手救救我,小弟中了无影脚了!!!!
- jbuilder 7---救急!!!
- 输入中文显示乱码是?????????为什么
- 我的java程序为何不能运行?
如需优化,你可以使用正则表达式
你的这个问题比较适合使用正则表达式
这个类在哪个路径,就是说要import什么?
RE re = new RE( "%var1%" );
String out = re.subst( dest, "xxx" );
这是Regexp的实现。
RE re = new RE( "%var1%" );
String out = re.subst( dest, "xxx" );
这是Regexp的实现。
“RE”是什么类?在哪个包里?
public static void main(String[] args) {
String s = new String("http://www.csdn.net/post?var1=%var1%&var2=%var2%;");
String x = "%xxx%";
String y = "%yyy%";
int i = s.indexOf("%var1%");
String s1 = s.substring(0,i)+x;
String s2 = s.substring(i+6);
System.out.println(s1);
System.out.println(s2);
int j = s2.indexOf("%var2%");
String s3 = s2.substring(0,j)+y+s2.substring(j+6);
String s4 = s1+s3;
System.out.println(s);//原字符串
System.out.println(s4);//新字符串
}
}自个慢慢看吧
String类好像没自动替换的方法吧
也就是当string里面不存在匹配的字串时没有处理
jakarta.apache.org
--呵呵,最近给人打得最多的好像就这个URL:)
RE在Apache的Regexp中
jakarta.apache.org
}
/**
* 使用replaceString替换targetString中的matchString
* @param targetString 源字符串
* @param matchString 匹配子串
* @param replaceString 替换字符串
* @return 处理后的源字符串
*/
public final static String replaceString( String target,
String match,
String replace)
{
int first=target.indexOf(match);
int last=first+match.length();
int targetLength=target.length();
/*
System.out.println("fi="+first);
System.out.println("li="+last);
System.out.println("tL="+targetLength);
*/
String replacedString=new String("");;//结果存放在这个变量中
if(first==-1){System.out.println("No match.");return target;}
else
{
replacedString=target.substring(0,first);
replacedString=replacedString.concat(replace);
replacedString=replacedString.concat(target.substring(last,targetLength));
}
return replacedString;
}
public static void main(String argv[])
{
String s=new String("0123456789");
String m=new String("78");
String r=new String("abcaaaaaaadefghijklm");
System.out.println(s);
System.out.println(m+"->"+r);
s=replaceString(s,m,r);
System.out.println(s);
}
}
//////////////////////////////////////////////////
谁的函数有我现在的好的,或者可以把我的做得好一点的话。我那50分就分给谁了。(另外50分给上面的“alphazhao(绿色咖啡) ”=30和: wangwenyou(王文友)=20)。
因为我的思路是被他们提醒起来的,虽然我曾经做过这样的替换,但是现在一直头脑很热,想不起来怎么做了,而当时又由于头脑很清以至于没有把他看做一个问题,就没有把他写做函数留作后用,今天就不大想起来了。
刚才受绿色咖啡的实现中的函数的启发,写了上面的实现过程,且借鉴了王文友的算法和格式。因此决定给分,当不是全分,因为绿色咖啡没有答的全对,不是说他的以外处理,而是他没有看清题意,他的结果不是我想要的。
我已经坐在电脑边一个下午了,从2:30到现在20点了吧。我是该做一做我的伲称了,我伲称本来就是提醒我要“想不出来,就出去转转”。