簡體   English   中英

string.replaceAll 替換出現次數

[英]string.replaceAll to replace occurrences

我需要替換一個字符串:

"abc.T.T.AT.T"

將所有單個T替換為TOT的字符串,例如

"abc.TOT.TOT.AT.TOT"

strings.replaceAll不適用於此。

環顧四周將解決您的問題:

s.replaceAll("(?<=\\.|^)T(?=\\.|$)", "TOT");

如果你這樣做:

String s = "T.T.T.AT.T.fT.T.T";
System.out.println(s.replaceAll("(?<=\\.|^)T(?=\\.|$)", "TOT"));

輸出將是:

TOT.TOT.TOT.AT.TOT.fT.TOT.TOT

您可以為此任務使用字邊界

text.replaceAll("\\bT\\b", "TOT");

僅當“T”之前和之后都沒有另一個單詞字符(意味着之前或之前沒有其他字母或數字)時,才會替換“T”。

這將適用於您的示例。 但是您應該知道,這將匹配所有帶有非單詞字符的“T”。 替換將是,例如:

  • .T。
  • %T%
  • ,T,
  • !T-

但不是“T”:

  • 。這。
  • 。在。
  • .1T2。
  • .T3
String input = "abc.T.T.AT.T";
        StringTokenizer st = new StringTokenizer(input,".");
        StringBuffer sb = new StringBuffer();
        while(st.hasMoreTokens()){
            String token = st.nextToken();
            if(token.equals("T")){
                token= token.replace("T", "TOT");
            }
            sb.append(token+".");
        }
            if(!(input.lastIndexOf(".")==input.length()-1))
            sb.deleteCharAt(sb.lastIndexOf("."));
        System.out.println(sb.toString());

希望這是你所需要的......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM