【问题标题】:Is there an easier way to split strings than by using arrays?有没有比使用数组更简单的分割字符串的方法?
【发布时间】:2014-11-12 00:05:34
【问题描述】:

我一直在使用数组来拆分我的字符串。随着我的程序继续扩展,这开始变得非常乏味。有没有更简单的方法可以在不使用数组的情况下做到这一点?我一直在使用数组来单独存储每个字符。我可以将多个字符(可能是字符串)存储在一个数组中吗?

【问题讨论】:

  • 请添加一些上下文。你用数组做什么?存储结果?为什么这么乏味?
  • 不知道数组有什么困难......或字符串分割......需要更多信息
  • String[] stringArray = new String[2]; 是字符串数组的一个例子,所以答案是肯定的,你可以使用字符串数组。看看 Apache Commons StringUtils。您可能会从中找到一些好处。

标签: java arrays string


【解决方案1】:

我想不出比String#split(",") 更容易拆分String 的方法。

如果数组惹恼了您,您可以简单地执行以下操作

List<String> splitList = Arrays.asList(theString.split(","));

因为列表更灵活。

如果这不能满足您的问题,您应该更具体。

(我以逗号正则表达式为例)

【讨论】:

  • 很确定 ^this^。我不知道您是否想要在没有某种数组/列表的情况下进行拆分。如果你想隐藏复杂性,即如果你有一个由两个逗号分隔的 3 段字符串,并且你每次都想要中间段,然后创建一个函数并调用它,这样你就可以从那时起隐藏数组.事实是,数组是编程的基本部分,您将不得不学习如何爱上它们。
【解决方案2】:

我一直在使用数组来单独存储每个字符。我可以储存吗 数组中的多个字符,可能是字符串?

是的,你可以。

如果您正在寻找更多帮助方法,以及有助于返回字符串数组而不仅仅是字符数组的简单函数。查看 Apache StringUtils

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

你也可以使用二维字符数组

char[][]

或者你可以只使用你的字符串数组

String[]

无论如何,StringUtils 将拥有您可能需要的大部分内容。如果您发现自己经常复制粘贴逻辑,或者一遍又一遍地编写相同类型的拆分逻辑,请将其包装在一个函数中并调用它。

【讨论】:

    【解决方案3】:

    使用Google Guavacom.google.common.base.Splitter 类:

    List<String> list = Splitter.on(',').splitToList("foo,bar,qux");
    

    或者:

    Iterable<String> iterator = Splitter.on(',').split("foo,bar,qux");
    

    【讨论】:

    • 非常优雅。如果每个人都使用公共图书馆,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多