Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正斜杠是否会导致StringUtils.remove和.removeEnd出现问题?_Java_Android_String_Substring_Apache Stringutils - Fatal编程技术网

Java 正斜杠是否会导致StringUtils.remove和.removeEnd出现问题?

Java 正斜杠是否会导致StringUtils.remove和.removeEnd出现问题?,java,android,string,substring,apache-stringutils,Java,Android,String,Substring,Apache Stringutils,我正在使用JSoup从网页中提取一段文本,并使用Apache的StringUtils库清理生成的字符串。第一步,使用substringBetween抓住括号中的文本,就像一个符咒,返回一个数字字符串(值),后跟单位(例如,2500mg/kg) 但是,当我尝试使用removeEnd删除尾随单位(mg/kg)时: value = StringUtils.removeEnd(value, "mg/kg"); 。。。我总是把原来的绳子完全原封不动地拿回来——2500mg/kg 我试着只使用普通的rem

我正在使用JSoup从网页中提取一段文本,并使用Apache的StringUtils库清理生成的字符串。第一步,使用
substringBetween
抓住括号中的文本,就像一个符咒,返回一个数字字符串(
),后跟单位(例如,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文档中找不到对特殊字符的任何限制,但是正斜杠会导致问题吗?或者我应该担心看不见的控件字符吗?

适合我(使用commons-lang3-3.7.jar):

您确定您的原始字符串以mg/kg结尾吗?在尝试removeEnd之前,将字符串的内容转储到sysout,或者使用调试器检查值

如果怀疑末尾有控制字符,可以使用另一个commons lang实用程序显示字符串:

StringEscapeUtils.escapeJava(value)

我有一个logcat语句,它显示字符串肯定会以“2500mg/kg”的形式进入
removeEnd
——根据你的建议,我编辑了它,使用
StringEscapeUtils.escapeJava
,并将输出用单引号括起来(确保没有任何尾随空格字符),我使用
removeEnd
重新键入了该行,现在它可以工作了。回顾我的版本历史,看起来我真的忘了重新分配变量(行只有
StringUtils.removeEnd(value,“mg/kg”);
没有
value=
!太尴尬了!谢谢你的建议,这迫使我放弃它。
StringEscapeUtils.escapeJava(value)