【发布时间】:2018-04-21 20:06:04
【问题描述】:
我正在使用 JSoup 从网页中提取一段文本,并使用 Apache 的 StringUtils 库清理生成的字符串。第一遍,使用substringBetween 仅抓取括号中的文本,这就像一个魅力,返回一个数字字符串 (value),后跟单位(例如,2500mg/kg)。
但是当我尝试使用removeEnd 删除尾随单位(mg/kg)时:
value = StringUtils.removeEnd(value, "mg/kg");
...我总是得到完全不变的原始字符串——2500mg/kg。
我尝试只使用普通的 remove 和 removeEndIgnoreCase(以防万一),但我什么也做不了。
首先我尝试了这个作为替代方案:
value = value.substring(0, value.indexOf("m"));
...这对几个测试有效,然后失败了(??)。于是我尝试了:
value = StringUtils.substring(value, 0, -5);
这似乎工作正常,但我并不喜欢它,因为它没有具体说明它要删除的内容。我真的更喜欢在这里使用removeEnd(或类似的东西)(而且我是新手,所以我总是想知道为什么有些东西不起作用)。
谁能解释我做错了什么?我在 StringUtils 文档中找不到对特殊字符的任何限制,但是正斜杠会导致问题吗?还是我应该担心不可见的控制字符?
【问题讨论】:
标签: java android string substring apache-stringutils