亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何提取字符串的特定部分并替換為相同的提取值但在不同情況下

如何提取字符串的特定部分并替換為相同的提取值但在不同情況下

繁花不似錦 2021-10-17 15:36:51
我的輸入t%60hiag%2Fra%2Cjan我希望將其轉換為t%60hiag%2fra%2cjan我想用 %2f 替換 %2F。即 0-9 之間的任何數字后跟來自 AF 的大寫字母應轉換為小寫字母。我能夠提取并替換為通用字符串。但我需要幫助將提取的字符串替換為小寫。  private static String urlEncodeLowerCase(String stringInput)  {    stringInput = stringInput.replaceAll("%[0-9]{1}[A-F]{1}", "T");      return stringInput;  }上面的代碼將提取并用“T”替換提取的字符串,但我想要類似的東西stringInput = stringInput.replaceAll("%[0-9]{1}[A-F]{1}", "%[0-9]{1}[A-Z]{1}".toLowerCase);  上面的代碼不起作用。這只是為了讓您了解我的要求。
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

您應該使用正則表達式來匹配要更改的字符串部分。之后,您應該遍歷所有匹配項并使用轉換匹配部分重建字符串,并且不更改所有其他部分??纯?Pattern、Matcher 和 StringBuilder 類是如何工作的。


查看完整回答
反對 回復 2021-10-17
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

您可以使用Matcher#appendReplacement. 根據Java Matcher類文檔:


的appendReplacement和appendTail方法可以串聯使用,以便收集的結果到一個現有的字符串緩沖區


請參閱此 Java 演示:


String s = "Some Text %0A";

Pattern p = Pattern.compile("%[0-9][A-Z]");

StringBuffer result = new StringBuffer();

Matcher m = p.matcher(s);

while (m.find()) {

    m.appendReplacement(result, m.group().toLowerCase());

}

m.appendTail(result);

System.out.println(result.toString());

// => Some Text %0a

如果要確保大寫字母后有單詞邊界,請使用"%[0-9][A-Z]\\b"模式。


查看完整回答
反對 回復 2021-10-17
  • 3 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號