|
1 /* |
|
2 * $Id: ItemList.java,v 1.1 2006/04/15 14:10:48 platform Exp $ |
|
3 * Created on 2006-3-24 |
|
4 */ |
|
5 package org.json.simple; |
|
6 |
|
7 import java.util.ArrayList; |
|
8 import java.util.List; |
|
9 import java.util.StringTokenizer; |
|
10 |
|
11 /** |
|
12 * |a:b:c| => |a|,|b|,|c| |
|
13 * |:| => ||,|| |
|
14 * |a:| => |a|,|| |
|
15 * @author FangYidong<fangyidong@yahoo.com.cn> |
|
16 */ |
|
17 public class ItemList { |
|
18 private String sp=","; |
|
19 List items=new ArrayList(); |
|
20 |
|
21 |
|
22 public ItemList(){} |
|
23 |
|
24 |
|
25 public ItemList(String s){ |
|
26 this.split(s,sp,items); |
|
27 } |
|
28 |
|
29 public ItemList(String s,String sp){ |
|
30 this.sp=s; |
|
31 this.split(s,sp,items); |
|
32 } |
|
33 |
|
34 public ItemList(String s,String sp,boolean isMultiToken){ |
|
35 split(s,sp,items,isMultiToken); |
|
36 } |
|
37 |
|
38 public List getItems(){ |
|
39 return this.items; |
|
40 } |
|
41 |
|
42 public String[] getArray(){ |
|
43 return (String[])this.items.toArray(); |
|
44 } |
|
45 |
|
46 public void split(String s,String sp,List append,boolean isMultiToken){ |
|
47 if(s==null || sp==null) |
|
48 return; |
|
49 if(isMultiToken){ |
|
50 StringTokenizer tokens=new StringTokenizer(s,sp); |
|
51 while(tokens.hasMoreTokens()){ |
|
52 append.add(tokens.nextToken().trim()); |
|
53 } |
|
54 } |
|
55 else{ |
|
56 this.split(s,sp,append); |
|
57 } |
|
58 } |
|
59 |
|
60 public void split(String s,String sp,List append){ |
|
61 if(s==null || sp==null) |
|
62 return; |
|
63 int pos=0; |
|
64 int prevPos=0; |
|
65 do{ |
|
66 prevPos=pos; |
|
67 pos=s.indexOf(sp,pos); |
|
68 if(pos==-1) |
|
69 break; |
|
70 append.add(s.substring(prevPos,pos).trim()); |
|
71 pos+=sp.length(); |
|
72 }while(pos!=-1); |
|
73 append.add(s.substring(prevPos).trim()); |
|
74 } |
|
75 |
|
76 public void setSP(String sp){ |
|
77 this.sp=sp; |
|
78 } |
|
79 |
|
80 public void add(int i,String item){ |
|
81 if(item==null) |
|
82 return; |
|
83 items.add(i,item.trim()); |
|
84 } |
|
85 |
|
86 public void add(String item){ |
|
87 if(item==null) |
|
88 return; |
|
89 items.add(item.trim()); |
|
90 } |
|
91 |
|
92 public void addAll(ItemList list){ |
|
93 items.addAll(list.items); |
|
94 } |
|
95 |
|
96 public void addAll(String s){ |
|
97 this.split(s,sp,items); |
|
98 } |
|
99 |
|
100 public void addAll(String s,String sp){ |
|
101 this.split(s,sp,items); |
|
102 } |
|
103 |
|
104 public void addAll(String s,String sp,boolean isMultiToken){ |
|
105 this.split(s,sp,items,isMultiToken); |
|
106 } |
|
107 |
|
108 /** |
|
109 * @param i 0-based |
|
110 * @return |
|
111 */ |
|
112 public String get(int i){ |
|
113 return (String)items.get(i); |
|
114 } |
|
115 |
|
116 public int size(){ |
|
117 return items.size(); |
|
118 } |
|
119 |
|
120 public String toString(){ |
|
121 return toString(sp); |
|
122 } |
|
123 |
|
124 public String toString(String sp){ |
|
125 StringBuffer sb=new StringBuffer(); |
|
126 |
|
127 for(int i=0;i<items.size();i++){ |
|
128 if(i==0) |
|
129 sb.append(items.get(i)); |
|
130 else{ |
|
131 sb.append(sp); |
|
132 sb.append(items.get(i)); |
|
133 } |
|
134 } |
|
135 return sb.toString(); |
|
136 |
|
137 } |
|
138 |
|
139 public void clear(){ |
|
140 items.clear(); |
|
141 } |
|
142 |
|
143 public void reset(){ |
|
144 sp=","; |
|
145 items.clear(); |
|
146 } |
|
147 } |