2014-03-31 24 views
0

我有一個字符串(比如說)替換特定的字符集從一個字符串中的java

int t=5; 

我想和一些其他字符串來替換上面的字符串標識符't'​​說。使用java中String的方法replaceAll()replace()也可以替換int中的char't'。所以我得到的輸出是

"inabc abc=5;" 

我想只替換標識符。請幫助我。謝謝。

+0

確定要更換什麼。你想替換「錫」中的「t」嗎? 「+ T +」? 「$ T $」? 「字母」? 「泰坦」?如果整個字符串只是「t」呢? Java沒有用於解析Java源代碼的內置庫,所以如果你想解析Java源代碼,你需要做很多工作(或者爲它找到一個庫)。 – immibis

+0

如果您正在嘗試構建可讓您重命名變量的工具,那麼您不必這樣做。只需使用Eclipse之類的IDE,標記要替換的變量(或者將光標設置爲它)並選擇'Refactor' - >'Rename..'。 – Pshemo

+0

如果您不想使用IDE功能,那麼您需要創建自己的Java解析器。正則表達式不是最好的工具。如果變量的名稱與某些類相同,比如'String String =「foo」;'? – Pshemo

回答

1

我認爲這將與工作

yourString.replace(" t", " abc"); 
5

您需要使用這個詞的錨(\b),如:

s = s.replaceAll("\\bt\\b", "abc"); 

一個正則表達式沒有一個字的概念!


但是,這隻會帶給你至今;這個正則表達式可能會在一些更復雜的構造上失敗。如果你想要更復雜的替換,你真的想使用解析器;例如,煮熟的。

-1

我認爲你可以改變「t =」爲「abc =」。

str.replace("t=", "abc="); 
+0

't'和'='之間有一個或多個空格的情況如何?或者如果't'是'it ='這樣的其他單詞中的最後一個字符? – Pshemo

+0

@Pshemo這個問題只需要將第二個「t」改爲「abc」,我認爲這是最快捷的方法。如果有其他要求,使用正則表達式是最好的方法。 –

+0

對於這種特殊情況下,對您的解決方案將工作,但似乎這是一個什麼樣OP確實在努力做的唯一的例子,所以要儘量加入更多籠統的回答爲好。 – Pshemo

0

使用下面的正則表達式替換變量的所有事件,假設前名後不能有任何的字一樣的特性:

String s = "int t=5"; 

    String s2 = s.replaceAll("(?<!\\w)t(?!\\w)", "abc"); 
相關問題