【问题标题】:Splitting a string up in java as it is pulled from a list?从列表中提取字符串时在java中拆分字符串?
【发布时间】:2010-11-04 15:26:56
【问题描述】:

我希望在遍历列表时拆分字符串列表,将以下内容想象为列表。

["StringA.StringB.StringC"]["StringA.StringB.StringC"]["StringA.StringB.StringC"]["StringA.StringB.StringC"]

所以我想遍历列表拉出每个字符串 ("StringA.StringB.StringC")

然后想用"." 分隔并将StringA 分配给一个String 变量-将String B 分配给一个,将String C 分配给一个。执行一些工作并继续下一个。

有什么想法可以做到这一点吗?

【问题讨论】:

    标签: java string list split


    【解决方案1】:

    这是一个相当简单的任务。只需使用 foreach 遍历列表,然后在 . 字符上拆分字符串。

    for(String s: list) {
        String[] splitString = s.Split("\\.");
        // do work on the 3 items in splitString
    }
    

    变量splitString 的长度为3。

    【讨论】:

    • 在时限已到时接受他的回答,佛朗哥。这就是 SO 工作原理的一部分......
    【解决方案2】:

    当然!你只想要String#split()

    for (String s : myList)
    {
        String[] tokens = s.split("\\.");
        // now, do something with tokens
    }
    

    您需要将参数中的句点转义为split(),因为字符串被解释为regex pattern,而未转义的句点 (".") 将匹配任何字符 - 不是什么你想要的!

    【讨论】:

      【解决方案3】:

      所以你有一个 String[] 的列表,它们是串联的字符串。除非这是某种遗留数据结构,否则您最好以某种方式使其更加统一。

      在任何情况下,迭代都非常简单 -

      List<String[]> l = ....
      
      for (String[] outer: l) { 
             for (String s: outer){
                  for (String inner: s.split("\\.")) // s.split takes a regex and returns a String[],
                       // inner has your inner values now
      

      【讨论】:

        【解决方案4】:

        要遍历列表,请参阅http://download.oracle.com/javase/tutorial/java/nutsandbolts/for.html

        要拆分字符串,请使用String.split(regex)

        【讨论】:

          【解决方案5】:

          String 类有split(String regex) 方法,通过正则表达式分割字符串。如果您不想处理正则表达式的麻烦,可以使用 Apache Commons Lang 中非常方便的 StringUtils 类。

          【讨论】:

            【解决方案6】:
            List<String> strings=new ArrayList<String>();
            
            for (String s:stringList){
               strings.addAll(Arrays.asList(s.split("\\.")));
            }
            

            然后您将在一个列表中包含所有字符串,并且您可以对其进行迭代。

            【讨论】:

            • 1) split 的参数是正则表达式,而不是纯字符串。 2) 问题没有要求将组件字符串添加到列表中……他想“执行一些工作并继续下一步”
            猜你喜欢
            • 1970-01-01
            • 2019-10-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-04-16
            • 2014-05-27
            • 1970-01-01
            • 2016-03-23
            相关资源
            最近更新 更多