1

2 つのクラス定数がある場合:

List<String> workingList= new ArrayList<String>();
StringBuilder holder = new StringBuilder(50);

両方が存在し、それをクラスStringParserとプライマリメソッドと呼びreadStuff()ます...

public class StringParser{

public void readStuff(){ 

//parsing logic and adding <String> elements to 
//said workingList...

}//end of method readStuff

続いてworkingList...の内容を検査する方法

public String someReaderMethod()
{ 
  int ind = 0;
  for(int i = 0; i < workingList.size();i++)
  {
    if(workingList.get(i).contains(someExp))
    {
      workingList.remove(ind);
      holder.append(workingList.get(i).toString());
}
else
{
   ++ind;
}
  }
   return holder.toString();    

}

...StringBuilderホルダーに削除されたものが含まれていることを考えると、の内容を新しいworkingListに「渡す」方法はありますか?StringBuilderArrayList

4

3 に答える 3

1

deliminator文字列を解析するためにが必要になります。その後、Splitメソッドを使用してString[]をArrayListに変換できます。

holder.append(tempList.get(i));
holder.append(";");//Deliminator

今、あなたがそれを使わなければならないとき、あなたはする必要があります

String[] strings =holderString.split(";");
List<String> list = Arrays.asList(strings);
于 2012-10-10T07:28:57.780 に答える
1

StringBuilderを使用する理由はありますか?値を新しいArrayListに直接挿入できます。もっと簡単な方法でできると思います。

List<String> discardedList = new ArrayList<String>();

public void readStuff() {}

public static List<String> someReaderMethod()
{
  for(int i = 0; i < workingList.size(); i++)
  {
    if(workingList.get(i).contains(someExp))
    {
      discardedList.add(workingList.get(i));
      workingList.remove(i);
    }
  }
  return discardedList;
}
于 2012-10-10T08:15:10.433 に答える
0

List要素をStringBuilderオブジェクトに追加するときは、追加するたびに追加の区切り文字を追加する必要があります。

後で、その区切り文字で分割して、String取得StringBuilderした文字列配列を。に変換できますArrayList

于 2012-10-10T07:32:19.680 に答える