我该如何在Java中使用StringUtils?

65

我是Java的初学者,想要使用StringUtils.replace函数。但是Eclipse输出了"StringUtils cannot be resolved"错误。

我尝试过import java.lang.*;,但是它没有起作用。


3
这是一个第三方库,你需要将它引入并在类路径中重新编译。你可以在谷歌上搜索“apache commons jar”来下载适用于你的架构和Java版本的zip或gz文件。在你的项目中新建一个名为lib的目录(或者其他位置也可以),然后把这个jar文件放进去。如果你使用IDE进行编译,请告诉项目包含该jar。如果你使用裸javac和java,则需要将该jar添加到类路径中以指向该jar。在你代码文件的顶部,你需要写出正确的 import 语句,例如 import org.apache.commons.lang3.StringUtils; - Eric Leschinski
11个回答

60

java.lang中没有名为StringUtils的类。一些第三方库,例如Apache Commons LangSpring框架中有相关类。请确保在项目类路径中具有相关jar文件并导入正确的类。


1
这些中应该使用哪一个?我有apache(包括axis和soap)、spring和ibm这几个选项。这可是四个选择啊! - Xonatron
2
@MatthewDoucette 嗯,你需要哪个实用方法?这些项目中的StringUtils类远非相同。如果您需要一些常见的东西,而您的项目中已经有许多类提供了它,那么可能并不重要。阅读它们各自的Javadocs,并选择适合您需求的一个。 - Jonik

56

StringUtils是一个Apache Commons项目。你需要下载并添加该库到你的类路径。

使用方法:

import org.apache.commons.lang3.StringUtils;

13

StringUtils位于org.apache.commons.lang.*而不是java.lang.*。最重要的是学会阅读javadoc文件。在学习了基本的Java语言后,所有Java程序员都应该学会阅读javadoc、执行来自公共项目的测试,并在自己的项目中使用这些jar包。

如果您正在使用Eclipse或Netbeans,可以在项目中创建一个名为lib的目录(文件夹),并将从硬盘下载的jar包复制到此目录中。接下来,您需要将其添加到您的项目中。

例如,在Eclipse的情况下,选择Project->Properties,然后选择Java Build Path->Add Jars,指向之前复制的jar包。在您的情况下,它可能是commons-lang-version.jar。

完成上述步骤后,每当您在Java文件中添加上述import时,这些库就会在您的项目中(在Eclipse或Netbeans中)可用。

您从哪里获取commons-lang的jar包? 任何Apache Commons的根目录都在http://commons.apache.org/ 以及对于commons-lang,它在http://commons.apache.org/lang/

这些库中有一些包含用户指南和其他帮助以帮助您入门,但是对于任何Java程序员来说,javadoc都是终极指南。

现在你问关于这个库是正确的时间,因为你不应该重新发明轮子。在可能的情况下使用Apache Commons和其他经过充分测试的库。通过使用这些库,您可以避免一些常见的人为错误,并且甚至可以测试这些库(使用即为测试)。有时,在将来使用此库时,您甚至可以编写一些修改或添加到此库。如果您回馈贡献,那么全世界都会受益。

StringUtils最常见的用途是在Web项目中(当您想要检查空格或null字符串、检查字符串是否为数字、使用某些令牌拆分字符串时)。StringUtils有助于摆脱那些讨厌的NumberFormatException和Null exceptions。但是StringUtils可以在任何使用String的地方使用。


5

StringUtils是来自于Apache commons-lang的一个实用工具类(很多库都有它,但这是最常见的库)。您需要下载该jar包并将其添加到应用程序的类路径中。


我在Java方面只是个新手,有点迷失了。我正在使用Eclipse,我知道如何导入和添加类路径,但是在您提供的链接中看不到可下载的库或jar文件。您能帮助我吗?谢谢。 - Raf
@user1078782 这是下载链接:http://commons.apache.org/lang/download_lang.cgi - Aravind Yarram
你要下载哪个文件?下载完成后你要做什么? - CodyBugstein

4

如果你正在开发 Android 应用,可以使用 TextUtils 类来帮助你:

import android.text.TextUtils;

这对于检查字符串的相等性确实很有帮助。
例如,如果您需要检查字符串s1和s2是否相等(可能为空),您可以使用而不是

if( (s1 != null && !s1.equals(s2)) || (s1 == null && s2 != null) ) 
{ ... }

这个简单的方法:

if( !TextUtils.equals(s1, s2) )
{ ... }

关于最初的问题 - 如果要进行替换,使用s1.replace()会更加简单


2

2

我正在使用Maven,我需要在pom.xml文件中添加以下依赖项:

<dependencies>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.4</version>
    </dependency>
</dependencies>

1

StringUtils是Apache Commons Lang(http://commons.apache.org/lang/)的一部分,它提供了一些方便处理字符串的实用程序,超出了java.lang.String所提供的范围。 它由50多个静态方法组成。

有两个不同的版本可用,较新的org.apache.commons.lang3.StringUtils和较旧的org.apache.commons.lang.StringUtils。 两者之间没有真正的显着差异。 lang3.StringUtils需要Java 5.0,可能是您想要使用的版本。


0

0

使用起来很简单。

StringUtils.isBlank(PassyourString);

这个方法将返回true或false,而不会出现任何NullPointerException。

但是如果您没有使用apache StringUtils,则可以按照以下代码片段进行操作

if(obj.getValue!=null)

或者,如果您正在使用常量进行验证,请按照以下代码操作。

if("INDIA".equals(obj.getCountry)){
// write your code
}

即使对象或值为null,这也不会抛出NullPointerException。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接