-1

我正在使用以下内容:

String x; ... ... // x gets set somewhere in this code String y = x.replaceAll("\\s+", " ").trim();

然后我发现 org.apache.commons.lang3.StringUtils.normalizeSpace() 做同样的事情。所以在我班级的顶部,我添加了

导入 org.apache.commons.lang3.StringUtils;

并调用 String y = normalizeSpace(x); 但它给了我一个方法未找到错误并建议我创建该方法。

所以我尝试了 import org.apache.commons.lang3.StringUtils.*;

但同样的问题。有人知道出了什么问题吗?

是的,我可以并且确实使用

String y = org.apache.commons.lang3.StringUtils.normalizeSpace(x);

但是每次输入整个路径都会很尴尬。

哦,我在任何一个 import 语句上都没有遇到语法错误。而且我想我可以回到替换和修剪,但 StringUtils 有很多其他方法也可以很好地使用。

4

2 回答 2

0

StringUtils是一类。它有一个名为normalizeSpace().

当您导入类时,这仅仅意味着您可以使用类名而不使用完全限定名。所以你可以这样做:

String y = StringUtils.normalizeSpace(x);

由于normalizeSpace()是静态方法,您还可以使用静态导入

import static org.apache.commons.lang3.StringUtils.normalizeSpace;

然后您就可以直接使用 normalizeSpace() 方法,而无需类名。

但是,应该注意的是,静态导入应该很少使用,因为它们会使您的代码更难以遵循。

于 2015-04-30T18:01:34.833 回答
0

您要么需要静态导入:

import static org.apache.commons.lang3.StringUtils.*;

...

String y = normalizeSpace(x);

或按名称引用类:

import org.apache.commons.lang3.StringUtils;

...

String y = StringUtils.normalizeSpace(x);
于 2015-04-30T18:00:35.747 回答