【问题标题】:s.replaceAll() not working Java/AndroidSDKs.replaceAll() 不工作 Java/AndroidSDK
【发布时间】:2012-06-28 22:17:38
【问题描述】:

您好,我正在尝试替换 (html) 字符串的一部分,但它不起作用。是的,我将它设置为一个新变量。

String newsBody = item.htcontent.replaceAll("resolveuid", "www.urlnotimportant.nl/resolveuid");

为什么这不起作用?

我认为这与 [img/] 标签有关。其中是我要替换的“resolveuid”字符串。

【问题讨论】:

  • 不是 replaceAll() 期待一个正则表达式吗?
  • “它不起作用”不能很好地描述正在发生的事情。请详细说明您的预期与实际发生的情况。
  • @bitbox:是的,resolveuid 是一个有效的正则表达式,需要 r 后跟 e 等等。 @Jens Vossnak:item.htcontentnewsBody 变量的值是多少?
  • @npinti :当然是有效的。但这可以解释为什么他没有得到预期的结果。
  • 那么您是说newsBody 没有替换所有“resolveuid”吗?或者item.htcontent 保持不变(这是意料之中的)。

标签: java android string replace replaceall


【解决方案1】:

ReplaceAll() 方法将正则表达式作为第一个参数。也许您的第一个参数与您期望的方式不匹配。 请参阅http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#replaceAll(java.lang.String,java.lang。

【讨论】:

  • OP 很可能只是试图用另一个字符串替换一个字符串。 Sice 每个字符串也是一个正则表达式,它表示一组可接受的长度为 1 的字符串,该方法接受正则表达式作为第一个参数这一事实并不真正相关,恕我直言。
  • 也就是说,String.replace 专门用于替换文字字符串,因此 OP 不妨在这里使用它。
【解决方案2】:

此代码是从以下位置为图像链接添加前缀的正确实现:

 <img src="resolveuid/832c2b08888aba0faccae78a14e9c764" alt="photo">

到这里:

 <img src="www.urlnotimportant.nl/resolveuid/832c2b08888aba0faccae78a14e9c764" alt="photo">

当然,除了问题中没有显示将修改后的 HTML 移回原位的代码。

你要做的就是在替换之后像这样将修改后的字符串分配回去:

item.htcontent = newsBody;

【讨论】:

  • 我知道它应该可以工作,因为我在 adobe Air 应用程序中做同样的事情并且图像总是加载。
  • @JensVossnack - 事实证明,最新版本的 Plone 等可以处理 URL 中间的 resolveuid 替换。基于此更新答案。
猜你喜欢
  • 1970-01-01
  • 2018-12-22
  • 1970-01-01
  • 2013-05-30
  • 2012-09-08
  • 2015-03-17
  • 2012-04-18
  • 2011-11-27
  • 1970-01-01
相关资源
最近更新 更多