Java字符串:具有高级功能的类或包?

时间:2011-08-26 04:44:59

标签: java string

我正在进行字符串操作,我需要比Java中提供的原始函数更高级的函数。

例如,我想在字符串中第(n-1)个和第n个字符之间返回一个子字符串。

我的问题是,是否已经有用户编写了执行此功能的类,还有许多用于字符串操作的类?或者我应该为我需要的每个特定功能挖掘stackoverflow吗?

2 个答案:

答案 0 :(得分:3)

查看Apache Commons类StringUtils,它有很多有趣的方法可以使用Strings。

http://commons.apache.org/lang/api-2.3/index.html?org/apache/commons/lang/StringUtils.html

答案 1 :(得分:2)

你看过正则表达式API了吗?对于用字符串做复杂的事情,这通常是你最好的选择:

http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

根据您要查看的内容,您可以针对模式遍历字符串(在您的情况下是单个字符)并匹配字符串中的所有内容,但不包括字符的下一个实例被称为捕获组。

我写了一个正则表达式已经有一段时间了,但是如果你正在寻找角色A,那么我你可以使用正则表达式A([^A]*)并保持匹配那个字符串。括号中的内容是一个捕获组,我在下面引用它。要匹配它,你可以在模式上使用匹配器方法:

http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#matcher%28java.lang.CharSequence%29

在Matcher实例上,您确保匹配为true,然后根据需要继续调用find()和group(1),其中group(1)将获取括号之间的内容。您可以在循环中使用计数器以确保获得该字母的n-1个实例。

最后,Pattern提供了您可以传递的标记,以指示您可能需要的不区分大小写的内容。

如果我在这里犯了一些错误,那么请有人纠正我。就像我说的那样,我每天都不写正则表达式,所以我确定我有点不对劲。