日期:2014-05-17  浏览次数:20779 次

高手请教一个截取字符串的问题
String str = "$1 > -10% || (( $2 > 0 && $2 > $3) || ($4 > 0 && $4 > $3))";

类似于这样的一个字符串,当然这只是其中一种字符串,字符串中包含的符号包括 >, >=, < ,<=,==,!=,||,&&,(,).

我需要翻译这个字符串$符号后面的数字,比如 1,2,3,4

1表示 : A类, 2表示 : B类,3表示 : C类,4表示 : D类

能解析成 : String str = "A类 > -10% || (( B类 > 0 && B类 > C类) || (D类 > 0 && D类 > C类))";

高手求教啊。。。。。。。。。。。。。。。。。。。。。

------解决方案--------------------
不用截取字符串用
str1 = str.replace("1","A类");
str2 = srt1.replace("2","C类");
....

------解决方案--------------------
for example
Java code
String[] replace = {"A类", "B类", "C类", "D类"};
String str = "$1 > -10% || (( $2 > 0 && $2 > $3) || ($4 > 0 && $4 > $3))";
for (int i=0; i<replace.length; i++) {
    str = str.replaceAll(String.format("[$]%s", i+1), replace[i]);
}
System.out.println(str);

------解决方案--------------------
[Quote=引用:]

for example
Java code
String[] replace = { "A类 ", "B类 ", "C类 ", "D类 "};
String str = "$1 > -10% || (( $2 > 0 &amp;&amp; $2 > $3) || ($4 > 0 &amp;&amp; $4 > $3)) ";
for (int i=0; i <replace.length; i++) {
……
[/Quote]

漂亮!我都是像1楼那样,呵呵。。。还是没有养成封装的概念。。。