Java 拆分字符串并保存到对象列表
我有一个字符串,我想从Stringbuffer中拆分出来,并将其保存到对象的arraylist中 我有一个数据字符串,看起来像这样:Java 拆分字符串并保存到对象列表,java,string,arraylist,stringtokenizer,Java,String,Arraylist,Stringtokenizer,我有一个字符串,我想从Stringbuffer中拆分出来,并将其保存到对象的arraylist中 我有一个数据字符串,看起来像这样: 001>10102011>874837>Y>Y>TEST001>No\\002>11102011>8743834>Y>Y>null>No\\ \将表示保存到新对象。 如何将此字符串保存到列表listsaveobj中 我的示例保存对象是 public class SaveObject{
001>10102011>874837>Y>Y>TEST001>No\\002>11102011>8743834>Y>Y>null>No\\
\将表示保存到新对象。
如何将此字符串保存到列表listsaveobj中
我的示例保存对象是
public class SaveObject{
private String obj1;
private String obj2;
private String obj3;
private String obj4;
private String obj5;
private String obj6;
private String obj7;
//getters and setters
}
我被困住了
StringTokenizer st= new StringTokenizer(sb1.toString(),"\\\\");
int count = 0;
int total= st.countTokens();//count no of rows of data
System.out.println(total);
while(count<total){
while(st.hasMoreElements()){
tmpList.add(st.nextToken());
count++;
}
}
System.out.println(tmpList.size());
for(int j = 0; j<tmpList.size(); j++){
String str = tmpList.get(j);
StringTokenizer st2 = new StringTokenizer(str, ">");
while (st2.hasMoreElements()){
System.out.println(st2.nextToken());
// is it possible to save into ArrayList of objects here?
// I can see that the String can split into
// 001
// 10102011
// 874873
// Y
// Y
// TEST001
// No etc
/* using st.nextToken but I don't know how to continue from here. Pls help!! Thanks. I want to do something like
obj = new Object();
obj.saveObj1(...);
obj.saveObj2(...);
obj.saveObj3(...);
obj.saveObj4(...);
obj.saveObj5(...);
obj.saveObj6(...);
obj.saveObj7(...);
listsaveobj.add(obj); but it's not possible? */
}
}
StringTokenizer st=新的StringTokenizer(sb1.toString(),“\\\”;
整数计数=0;
int total=st.countTokens()//统计数据行数
系统输出打印项次(总计);
而(count以下是提取数据的更好方法:
String s = "001>10102011>874837>Y>Y>TEST001>No\\\\002>11102011>8743834>Y>Y>null>No\\\\";
String[] rows = s.split("\\\\");
for (String r : rows) {
String[] cols = r.split(">");
for (String c : cols) {
System.out.print(c + "\t");
}
System.out.println();
}
你会考虑用一个数组来替换这七个字段吗?嗨,戴维,是的,肯定的是)你在分裂什么?第二行不应该是<代码> S.S拆开(“Engule\”)<代码>吗?在我评论的最后,我欺骗了你。我不是真的问你split
将正则表达式作为参数。匹配反斜杠的正则表达式是两个反斜杠加在一起,但在代码中编写它需要四个。因为OP使用一对反斜杠作为分隔符,所以你需要八个来写它。嗨,大卫,你是什么意思?我使用“\\”作为一个新对象的指示器。我的意思是,Rendon的解决方案,如给定的,不起作用。您需要将第二行更改为String[]rows=s.split(“\”)
如果要使用两个反斜杠作为分隔符。@rendon是否可以在2D数组上执行此操作?