2014-03-31 22 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"); 
相关问题