2011-06-29 81 views
0

最好的方式,我有一個字符串:的java字符串替換做

a0 + a1*ln(Hr) + a2*ln(St) + a3*ln(Tr) 

這需要在轉換:

a1 + a2*log(Hr[i]) + a3*log(St[i]) + a4*log(Tr[i]) 

回答

1

試試這個:

String f = "a0 + a1*ln(Hr) + a2*ln(St) + a3*ln(Tr)"; 
f.replaceAll("ln", "log").replaceAll("\\(([A-Z][a-z])\\)","($1[i])")); 

這將替換所有ln通過log,並且將每個​​字符串後面添加[i]

+0

thanqu非常多爲你答覆..它的工作,但又一個變化..如果你觀察我的轉換問題..在第一個字符串它是a0 + a1 * ln(hr)和轉換後它必須是a1 + a2 *日誌(Hr [i]) – Tapsi

+0

我希望你的意思是'f.replaceAll ................' – adarshr

+0

@Tapsi它有點更進化,那麼你需要使用'Pattern'和'Matcher'來遍歷匹配並增加'x#'字符串。看看http://download.oracle.com/javase/tutorial/essential/regex/ – Giann

0

我會使用的replaceAll(),如果你只有這個字符串。

如果你需要應用模式更多的時候考慮使用Pattern