下面的代碼將與240px
更換30px
字符串s
使用正則表達式:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Example {
public static void main(String[] args) {
String s = "abc 30px def";
int var = 8;
Pattern patt = Pattern.compile("([0-9]+)px");
Matcher m = patt.matcher(s);
StringBuffer sb = new StringBuffer(s.length());
while (m.find()) {
int px = Integer.parseInt(m.group(1));
String next = String.valueOf(var * px) + "px";
m.appendReplacement(sb, Matcher.quoteReplacement(next));
}
m.appendTail(sb);
System.out.println(sb.toString());
}
}
以下是它執行的步驟:
- 創建編譯的正則表達式。這將在稍後再次使用正則表達式時提高性能。
- 搜索字符串
s
的比賽和每場比賽:
- 通過
var
轉換爲整數的字符串和多吧。
- 再次追加
px
並將其作爲替換字符串傳遞。
- 最後,再次打印輸入字符串,並替換某些字符串。
你是不是指'80px'? – kennytm 2012-07-08 10:08:55
是的。我編輯了我的問題,謝謝 – Dejell 2012-07-08 10:09:25
我認爲如果將它解釋爲DOM並閱讀屬性會更好。 – 2012-07-08 10:13:08