如果我有两个类常量:
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
已删除的内容,我是否有办法将StringBuilder
的内容“传递”给新的ArrayList
?
答案 0 :(得分:1)
您需要deliminator
来解析字符串,然后您可以使用Split
方法并将String []转换为ArrayList。
holder.append(tempList.get(i));
holder.append(";");//Deliminator
现在当你必须使用它时,你需要做
String[] strings =holderString.split(";");
List<String> list = Arrays.asList(strings);
答案 1 :(得分:0)
在将List元素附加到StringBuilder
对象时,您需要在每次追加后追加一个额外的分隔符。
稍后,您可以在该分隔符上的String
中拆分StringBuilder
,然后将您获得的String数组转换为ArrayList
..
答案 2 :(得分:0)
你有没有想要使用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;
}