2 * @(#) $Id: StringValues.java,v 1.1.2.1 2005/01/18 07:20:49 otsuka Exp $
\r
3 * $Revision: 1.1.2.1 $
\r
5 package com.ozacc.mail.fetch.impl.sk_jp.util;
\r
12 * 複数の文字列をカンマやタブ区切りなどの一つの文字列として管理可能とします。
\r
13 * <br>内部的にはListに入れますのでindexによるアクセスも可能ですが、
\r
14 * 構築時、及びgetString()時に区切り文字で一本にされた文字列として
\r
16 * エスケープ処理がされないので、デリミタを含むトークンを認識できません。
\r
18 * @version $Revision: 1.1.2.1 $ $Date: 2005/01/18 07:20:49 $
\r
21 public class StringValues {
\r
22 private List src_ = new ArrayList();
\r
24 * 複数文字列管理オブジェクトを生成します。
\r
26 public StringValues() {}
\r
28 * 複数文字列管理オブジェクトを生成します。
\r
29 * @param str 区切り文字で連結された文字列
\r
31 public StringValues(String str) {
\r
35 * 複数文字列管理オブジェクトを生成します。
\r
36 * @param str 区切り文字で連結された文字列
\r
39 public StringValues(String str, String delim) {
\r
43 * 複数文字列管理オブジェクトを生成します。
\r
44 * @param strings 文字列の配列
\r
46 public StringValues(String[] strings) {
\r
50 * 複数文字列管理オブジェクトを生成します。
\r
51 * @param strings 文字列の配列
\r
53 public StringValues(Object[] o) {
\r
54 for (int i = 0; i < o.length; i++) {
\r
55 add(o[i].toString());
\r
58 //////////////////////////////////////////////////////////////////////////////
\r
60 * デリミタで区切られた文字列を分割して追加します。
\r
62 * デリミタはStringTokenizerの標準のデリミタ
\r
63 * <code>"\t\n\r\f"</code>が使われます。
\r
65 * @param str 区切り文字で連結された文字列
\r
68 public void parse(String str) {
\r
69 StringTokenizer st = new StringTokenizer(str);
\r
73 * デリミタで区切られた文字列を分割して追加します。
\r
76 * @param str 区切り文字で連結された文字列
\r
79 public void parse(String str, String delim) {
\r
80 StringTokenizer st = new StringTokenizer(str, delim);
\r
83 private void parse(StringTokenizer st) {
\r
84 while (st.hasMoreTokens()) {
\r
85 add(st.nextToken());
\r
90 * @return Iteratorオブジェクト
\r
92 public Iterator iterator() {
\r
93 return src_.iterator();
\r
99 * 区切り文字列は文字列同士の間に単純に挿入されます。
\r
101 * @return 文字列化したオブジェクト
\r
103 public String getString() {
\r
104 return getString(", ");
\r
107 * 指定した区切り文字で連結された文字列を得ます。
\r
109 * 区切り文字列は文字列同士の間に単純に挿入されます。
\r
111 * @param delim 区切り文字列
\r
112 * @return 文字列化したオブジェクト
\r
114 public String getString(String delim) {
\r
115 StringBuffer buf = new StringBuffer();
\r
116 Iterator iterator = iterator();
\r
117 if (iterator.hasNext()) {
\r
118 buf.append(iterator.next());
\r
120 while (iterator.hasNext()) {
\r
121 buf.append(delim).append(iterator.next());
\r
123 return new String(buf);
\r
125 public String toString() {
\r
126 return getString();
\r
129 * 指定indexの文字列を取得します。
\r
130 * @param index 文字列群中の位置
\r
132 public String get(int index) {
\r
133 return (String)src_.get(index);
\r
137 * @param str 追加する文字列
\r
139 public void add(String str) {
\r
144 * @param str 追加する文字列
\r
146 public void add(String[] str) {
\r
147 for (int i = 0; i < str.length; i++) {
\r
154 public void clear() {
\r