0
I am try to replace below String

 #cit {font-size:16pt; color:navy; text-align:center; font-weight:bold;}

#cit {字体大小:16pt; 红色; 文本对齐:居中;字体粗体:粗体;}

我正在为此编写 Java 代码

strbuf.toString().replaceAll(Pattern.quote("#cit {font-size:16pt; color:navy;    
text-align:center; font-weight:bold;}"), "#cit {font-size:16pt; color:red;   
text-align:center; font-weight:bold;}");

但是字符串没有被替换?请帮我

4

7 回答 7

3

改变

strbuf.toString().replaceAll(Pattern.quote("#cit {font-size:16pt; color:navy; text-align:center; font-weight:bold;}"), "#cit {font-size:16pt; color:red; text-align:center; font-weight:bold;}");

strbuf.toString().replaceAll("#cit {font-size:16pt; color:navy; text-align:center; font-weight:bold;}", "#cit {font-size:16pt; color:red; text-align:center; font-weight:bold;}");
于 2013-09-18T06:31:22.060 回答
1

我猜你正在使用 StringBuffer。

strbuf = new StringBuffer(strbuf.toString().replace(
  "#cit \\{font-size:16pt; color:navy; text-align:center; font-weight:bold;\\}"), 
  "#cit \\{font-size:16pt; color:red; text-align:center; font-weight:bold;\\}"));

因为:

toString()将创建. _ StringBuffer如果您替换副本中的文本,这不会改变strbuf

Whereat\\用于将 { 和 } 屏蔽为非正则表达式。

于 2013-09-18T06:39:49.310 回答
1

做就是了:

myString = myString.replaceAll("navy", "red");
于 2013-09-18T06:32:37.190 回答
0

你不能通过这样做来替换字符串。

mystring.replace("string1", "string2");

相反,你应该做

mytring = mystring.replace("string1", "string2");

这是因为 String 在 java 中是不可变的对象。str.replace 不会影响原始 str 对象,而是方法返回一个新的字符串对象。

于 2013-09-18T06:36:58.023 回答
0

你只是想改变颜色?

利用:

strbuf.toString().replaceAll("navy", "red");

顺便说一句:如果您真的想替换 CSS 中的值,最好在源 CSS 中插入某种标记,例如color:${color-to-be-replaced}并替换该标记,因为它更便携和可靠. 想想如果将源 CSS 的颜色更改为绿色而忘记更改替换代码会发生什么。

于 2013-09-18T06:42:44.383 回答
0

关于什么

 str.replaceAll(str,"#cit {font-size:16pt; color:red; text-align:center; font-weight:bold;}")
于 2013-09-18T06:33:03.360 回答
0

我会使用 String.replace() 来避免在 replaceAll() 中处理正则表达式

String result = text.replace("#cit {font-size:16pt; color:navy; text-align:center; font-weight:bold;}",
              "#cit {font-size:16pt; color:red; text-align:center; font-weight:bold;}");
于 2013-09-18T06:33:24.427 回答