【问题标题】:Java string: classes or packages with advanced functions?Java 字符串:具有高级功能的类或包?
【发布时间】:2011-11-04 05:34:27
【问题描述】:

我正在处理字符串,我需要比 Java 中提供的原始功能更高级的功能。

例如,我想返回字符串中第 (n-1) 次和第 n 次出现字符之间的子字符串。

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

【问题讨论】:

    标签: java string


    【解决方案1】:

    查看 Apache Commons 类 StringUtils,它有很多有趣的方式来处理字符串。

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

    【讨论】:

    • 这正是我想要的!非常感谢!我只需要弄清楚如何在我的 Netbeans 环境中安装它(我 非常 是 java 新手!)
    【解决方案2】:

    您看过正则表达式 API 吗?这通常是用字符串做复杂事情的最佳选择:

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

    按照您要执行的操作,您可以根据模式(在您的情况下为单个字符)遍历字符串,并匹配字符串中的所有内容,但不包括字符的下一个实例称为捕获组。

    我已经有一段时间没有编写正则表达式了,但是如果您正在寻找字符 A,那么我认为您可以使用正则表达式 A([^A]*) 并继续匹配该字符串.括号中的东西是一个捕获组,我在下面引用它。要匹配它,您可以在模式上使用 matcher 方法:

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

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

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

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

    【讨论】:

    • 谢谢,我也想过正则表达式,但为了运行时的速度,我宁愿不使用正则表达式匹配来进行简单、通用的字符串操作。
    猜你喜欢
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 2021-03-17
    • 1970-01-01
    • 2022-08-10
    相关资源
    最近更新 更多