解析列表&字符串

时间:2013-12-04 16:59:07

标签: java string list parsing

我正在使用此代码和ds列表打印例如:

aaa.(bbb)
aaa.(eee)
ccc.(ddd) 
...

我需要它在相同的括号中打印与aaa相关的字符串,以便将它们分开。

示例:aaa.(bbb,eee)

我的代码应该更改什么?

我知道代码不完整,但如果我添加了所有东西,它会使它复杂化很多。目标是在字符串s的templist上进行迭代,以上述格式添加templist元素。

List<String> templist = new ArrayList<String>() ;
List<String> ds = new ArrayList<String>() ;

String s = "aaa"

String selecfin = null ;

for(int j =0;j<templist.size(); j++){

       String selecP = templist.get(j);

       selecfin = s+".("+selecP+")";
       ds.add(selecfin);
}

2 个答案:

答案 0 :(得分:2)

我没有测试它,但你可以像这样试试

List<String> templist = new ArrayList<String>() ;
List<String> ds = new ArrayList<String>() ;

String s = "aaa";

String selecfin = null ;
String tmp = null;

for(int i=0; i<templist.size(); i++) {
  if(tmp != null) {
    tmp = tmp + "," + templist.get(i);
  } else {
    tmp = templist.get(i);
  }
}

selecfin = s + ".(" + tmp + ")";

ds.add(selecfin);

答案 1 :(得分:0)

您可以按如下方式检查aaa是否存在:

if(selecP.contains("aaa")){
  // separate and do what you need
}  

以上述格式添加templist元素。我不太明白这意味着什么。

此外,您可以通过使用for-each循环使代码更紧凑,如下所示:

for(String selecP : tempList){
  if(selecP.contains("aaa"){
      // something
  }
}  

您没有在自己提供的代码段中向列表中添加任何内容。您正在迭代空列表。


<强> SSCCE:
在此处运行:http://ideone.com/66EIax

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        List<String> tempList = new ArrayList<String>();
        List<String> ds = new ArrayList<String>();

        tempList.add("aaa.(bbb)");
        tempList.add("aaa.(eee)");
        tempList.add("ccc.(ddd)");

        String s = "aaa";

        for(String selecP : tempList){
            if(selecP.contains(s)){
                ds.add(new String(selecP));
            }
        }

        for(String each : ds){
            System.out.println(each);
        }
    }
}  

输出:

aaa.(bbb)
aaa.(eee)