【问题标题】:Java: String replace doesn't find [closed]Java:找不到字符串替换[关闭]
【发布时间】:2012-04-26 01:05:52
【问题描述】:

mystring.replace() 在我的文本中找不到所有内容,例如:

replace = (CalendarInfo.Monday + " " + String.valueOf(dayofmonth) + " " + String.valueOf(CalendarInfo.Month[monthofyear]).toString());
                   str= str.replace(replace, "Hello");

我检查了strreplace,但替换仍然没有任何作用! str 里面完全有替换字符串。

那么为什么不替换替换!?

【问题讨论】:

  • 您能否在调用.replace(...)之前打印并写下strreplace的值?
  • str = 整个 html 页面,replace 是一个大约 20 个字符的句子
  • docs.oracle.com/javase/1.4.2/docs/api/java/lang/…, char) 说 replace 接受一个 char 和另一个 char,你提供了两个字符串。文档有很好的用法示例。你需要其他方法吗?
  • @OsamaJaved: CharSequence 也允许替换。
  • 1.6 文档支持 CharSequence,1.4 没有这种方法:docs.oracle.com/javase/6/docs/api/java/lang/…, java.lang.CharSequence) 我想看看你在替换的字符串。跨度>

标签: java string replace str-replace


【解决方案1】:
String str = "abcd".replace("ab", ""); //str is "cd"

这意味着您的代码基本上可以正常工作。但是您的替换字符串并不完全在您的源字符串中。

【讨论】:

  • 我无法用肉眼将它们分开。相同
  • @PewLabs:在可以显示不可见字符(空格、制表符等)的编辑器中打开这两个字符串。也许你看不到它。
  • 没有制表符,没有多余的空格
  • @PewLabs:尝试在文本编辑器中替换字符串,看看它是否有效,然后将字符串从调试器中复制出来。
  • 有相同的,我不知道为什么它不替换:(
【解决方案2】:

可能是因为你的假设是错误的。

可能是不同数量的(空白)空格,或不同的代码(0x20 或 0xa0),或制表符“\011”

【讨论】:

  • 可能是,我正在从网络加载字符串编辑*没有额外的空格
猜你喜欢
  • 1970-01-01
  • 2012-09-11
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多