|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectnga.util.TextWalker
public class TextWalker
CSV やプロパティファイル(iniファイル)形式のテキストを簡単に分解するための
ユーティリティ。
使用例1:プロパティファイル形式文字列
// 解析するテキスト文字列を引数にしてTextWalker を作成する。 TextWalker file = new TextWalker(text); while(file.isWalking()){ // 1行分読み込む。 TextWalker line = file.getLine(); // キー部(プロパティ名)を取り出す。 String key = line.getString('='); // 値部を取り出す。 String value = line.getString(); System.out.println("["+key+"]:"+"["+value+"]"); }例えば,このプログラムの text 変数に以下のような文字列を格納してから 実行すると,
abc = あいう def =えおか ghi=きくけ次のように表示される。
[abc]:[あいう] [def]:[えおか] [ghi]:[きくけ]
// 解析するテキスト文字列を引数にしてTextWalker を作成する。 TextWalker file = new TextWalker(text); file.setCommentSkip(false); file.setSpaceSkip(false); while(file.isWalking()){ // 1行分読み込む。 TextWalker line = file.getLine(); while(line.isWalking()){ // "," までの文字列を取り出す。 String column = line.getString(','); // 取り出した文字列をタブで区切って表示する。 System.out.print(column); System.out.print("\t"); } System.out.println(); }例えば,このプログラムの text 変数に以下のような文字列を格納してから 実行すると,
abc,defg,hij,klm あいう,えお,かきく,けこ次のように表示される。
abc defg hij klm あいう えお かきく けこ
コンストラクタの概要 | |
---|---|
TextWalker(String str)
TextWalker を作成する。 |
メソッドの概要 | |
---|---|
TextWalker |
between(char c1,
char c2)
2つの文字の間にある文字列に対応する TextWalker を取得する。 |
TextWalker |
between(String s1,
String s2)
2つの文字列の間にある文字列に対応する TextWalker を取得する。 |
String |
betweenString(char c1,
char c2)
2つの文字の間にある文字列を取得する。 |
String |
betweenString(String s1,
String s2)
2つの文字列の間にある文字列を取得する。 |
boolean |
contains(char c)
指定された文字が現在位置以降の分析対象テキストに含 まれているかどうかを調べる。 |
boolean |
contains(String s)
指定された文字列が現在位置以降の分析対象テキストに含 まれているかどうかを調べる。 |
boolean |
endsWith(char c)
探索対象文字列の末尾が指定した文字と一致しているかどうかを調べる。 |
boolean |
endsWith(String s)
探索対象文字列の末尾が指定した文字列と一致しているかどうかを調べる。 |
TextWalker |
get()
現在位置以降にある全ての文字列に対応する TextWalker を取得する。 |
TextWalker |
get(char c)
指定した文字を検索し,現在位置から指定した文字の間にある文字列に 対応する TextWalker を取得する。 |
TextWalker |
get(char c,
boolean next)
指定した文字を検索し,現在位置から指定した文字の間にある文字列に 対応する TextWalker を取得する。 |
TextWalker |
get(String s)
指定した文字列を検索し,現在位置から指定した文字の間にある文字列に 対応する TextWalker を取得する。 |
TextWalker |
get(String s,
boolean next)
指定した文字列を検索し,現在位置から指定した文字の間にある文字列に 対応する TextWalker を取得する。 |
char |
getChar(int i)
現在位置 + num の位置にある文字を取得する。 |
char |
getCommentChar()
コメント行を示す文字を取得する。 |
char |
getCurrentChar()
現在位置の文字を取得する。 |
int |
getCurrentIndex()
現在位置を取得する。 |
char |
getEscapeChar()
現在セットされているエスケープ記号を取得する。 |
TextWalker |
getLine()
現在位置から行末までの間にある文字列に対応する TextWalker を取得する。 |
String |
getLineString()
現在位置から行末までの間にある文字列を取得する。 |
String |
getString()
現在位置以降にある全ての文字列を取得する。 |
String |
getString(char c)
指定した文字を検索し,現在位置から指定した文字の間にある文字列 を取得する。 |
String |
getString(char c,
boolean next)
指定した文字を検索し,現在位置から指定した文字の間にある文字列 を取得する。 |
String |
getString(String s)
指定した文字列を検索し,現在位置から指定した文字の間にある文字列 を取得する。 |
String |
getString(String s,
boolean next)
指定した文字列を検索し,現在位置から指定した文字の間にある文字列 を取得する。 |
String |
getText()
この TextWalker が分析対象としているテキストを取得する。 |
String |
getWord()
現在位置から語の区切り文字までの文字列を取得する。 |
char[] |
getWordSeparators()
getWord メソッドで語の区切り文字として扱う文字を取得する。 |
boolean |
isCommentSkip()
コメントをスキップする設定になっているかどうかを調べる。 |
boolean |
isSpaceSkip()
空白文字をスキップする設定になっているかどうかを調べる。 |
boolean |
isWalking()
分析対象テキストの終端に到達したかどうかを調べる。 |
int |
length()
この TextWalker が分析対象としているテキストの文字数を取得する。 |
void |
mark()
現在の位置を記録しておき, reset() メソッドが呼び出されたときに
戻ることができるようにする。 |
void |
moveCurrentIndex(int count)
指定した文字数分現在位置を移動する。 |
void |
reset()
mark() メソッドで記録した位置に戻る。 |
TextWalker |
search(char c)
指定した文字を検索し,現在位置から指定した文字の間にある文字列に 対応する TextWalker を取得する。 |
TextWalker |
search(char c,
boolean next)
指定した文字を検索し,現在位置から指定した文字の間にある文字列に 対応する TextWalker を取得する。 |
TextWalker |
search(String s)
指定した文字列を検索し,現在位置から指定した文字列の間にある文字列に 対応する TextWalker を取得する。 |
TextWalker |
search(String s,
boolean next)
指定した文字列を検索し,現在位置から指定した文字列の間にある文字列に 対応する TextWalker を取得する。 |
String |
searchString(char c)
指定した文字を検索し,現在位置から指定した文字の間にある文字列 を取得する。 |
String |
searchString(char c,
boolean next)
指定した文字を検索し,現在位置から指定した文字の間にある文字列 を取得する。 |
String |
searchString(String s)
指定した文字列を検索し,現在位置から指定した文字列の間にある文字列に を取得する。 |
String |
searchString(String s,
boolean next)
指定した文字列を検索し,現在位置から指定した文字列の間にある文字列に を取得する。 |
void |
setCommentChar(char c)
コメント行を示す文字を指定する。 |
void |
setCommentSkip(boolean b)
コメントをスキップするかどうかを設定する。 |
void |
setEscapeChar(char c)
エスケープ記号を設定する。 |
void |
setSpaceSkip(boolean b)
区切り文字の前後にある空白文字をスキップするかどうかを設定する。 |
void |
setWordSeparators(char[] separators)
getWord メソッドで語の区切り文字として扱う文字をセットする。 |
void |
skip()
setSpaceSkip(true) が指定してあれば空白文字を読みとばし, setCommentSkip(true) が指定してあればコメントを読みとばす。 |
boolean |
skip(char c)
指定された文字の次の文字に現在位置を移動する。 |
boolean |
skip(String s)
指定された文字列の次の文字に現在位置を移動する。 |
boolean |
startsWith(char c)
現在位置の文字が指定した文字と一致しているかどうかを調べる。 |
boolean |
startsWith(String s)
現在位置以降の文字列の最初が指定した文字列と一致しているかどうかを調べる。 |
String |
toString()
インスタンスの内容を文字列として取得する。 |
void |
trimHead(char c)
探索対象文字列の先頭が指定した文字と一致している場合,指定した先頭文字を 削除する。 |
void |
trimHead(String s)
探索対象文字列の先頭が指定した文字列と一致している場合,指定した先頭文字列を 削除する。 |
void |
trimTail(char c)
探索対象文字列の末尾が指定した文字と一致している場合,指定した末尾文字を 削除する。 |
void |
trimTail(String s)
探索対象文字列の末尾が指定した文字列と一致している場合,指定した末尾文字列を 削除する。 |
char |
which(char[] c)
指定した文字の中で,現在位置以降で最初に現れる文字を取得する。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
public TextWalker(String str)
str
- 分析対象とするテキスト。メソッドの詳細 |
---|
public void setEscapeChar(char c)
TextWalker tw = new TextWalker("abc,abc\\,de,abc"); tw.setEscapeChar('\\'); while(tw.isWalking()){ System.out.println(tw.getString(',')+"|"); } System.out.println();
c
- エスケープ記号。getEscapeChar()
public final char getEscapeChar()
setEscapeChar(char)
public void setSpaceSkip(boolean b)
TextWalker tw = new TextWalker("a , b , c, d"); while(tw.isWalking()){ System.out.println(tw.getString(',')+","); } System.out.println();次のプログラムでは,"a , b , c, d," と表示される。
TextWalker tw = new TextWalker("a , b , c, d"); tw.setSpaceSkip(false); while(tw.isWalking()){ System.out.println(tw.getString(',')+","); } System.out.println();この実装では,' ' 以下のコードに割り当てられた文字を 空白文字として扱う。
b
- スキップする場合は true を指定する。isSpaceSkip()
public final boolean isSpaceSkip()
setSpaceSkip(boolean)
public void setCommentSkip(boolean b)
setCommentChar(char)
メソッドで指定する。
b
- スキップする場合は true を指定する。setCommentChar(char)
,
isCommentSkip()
public final boolean isCommentSkip()
setCommentSkip(boolean)
public void setCommentChar(char c)
c
- コメント行を示す文字。setCommentSkip(boolean)
,
getCommentChar()
public final char getCommentChar()
setCommentChar(char)
public void setWordSeparators(char[] separators)
separators
- 区切り文字。getWord()
,
getWordSeparators()
public char[] getWordSeparators()
getWord()
,
setWordSeparators(char[])
public final boolean isWalking()
public final int getCurrentIndex()
public final void moveCurrentIndex(int count)
count
- 移動する文字数。public final char getCurrentChar()
public final char getChar(int i)
public boolean startsWith(String s)
s
- 比較する文字列。
public boolean startsWith(char c)
c
- 比較する文字。
public void trimHead(String s)
s
- 比較する文字列。public void trimHead(char c)
c
- 比較する文字。public boolean endsWith(String s)
s
- 比較する文字列。
public boolean endsWith(char c)
c
- 比較する文字。
public void trimTail(String s)
s
- 比較する文字列。public void trimTail(char c)
c
- 比較する文字。public final String getText()
public final int length()
public TextWalker between(char c1, char c2)
TextWalker tw = new TextWalker("ab{cde}fg"); System.out.println(tw.between('{','}').getText());上のプログラムを実行すると,コンソール上には "cde" が表示される。
TextWalker tw = new TextWalker("ab{cde{fg}hi}jk"); System.out.println(tw.between('{','}').getText());上記のプログラムを実行すると,"cde{fg}hi" が表示される。
c1
- 取得開始文字。c2
- 取得終了文字。
betweenString(char,char)
public TextWalker between(String s1, String s2)
TextWalker tw = new TextWalker("ab<-cde->fg"); System.out.println(tw.between("<-","->").getText());上のプログラムを実行すると,コンソール上には "cde" が表示される。
TextWalker tw = new TextWalker("ab<-cde<-fg->hi->jk"); System.out.println(tw.between("<-","->").getText());上記のプログラムを実行すると,"cde<-fg->hi" が表示される。
s1
- 取得開始文字列。s2
- 取得終了文字列。
betweenString(String,String)
public TextWalker search(char c)
c
- 検索する文字。
searchString(char)
,
get(char)
public TextWalker search(char c, boolean next)
c
- 検索する文字。next
- true の場合は,現在位置を指定した文字の次に移動する。
searchString(char, boolean)
,
get(char, boolean)
public TextWalker search(String s)
s
- 検索する文字列。
searchString(String)
,
get(String)
public TextWalker search(String s, boolean next)
s
- 検索する文字列。next
- true の場合は,現在位置を指定した文字列の次に移動する。
searchString(String,boolean)
,
get(String,boolean)
public TextWalker get()
isWalking()
メソッドが
false を返すようになる)。
getString()
public TextWalker get(char c)
get()
メソッドを
実行したときと同じ動きをする。
c
- 検索する文字。
get()
メソッドを実行
したときと同じ動きをする。getString(char)
,
get()
,
search(char)
public TextWalker get(char c, boolean next)
get()
メソッドを
実行したときと同じ動きをする。
c
- 検索する文字。next
- true の場合は,現在位置を指定した文字の次に移動する。
get()
メソッドを実行
したときと同じ動きをする。getString(char,boolean)
,
get()
,
search(char,boolean)
public TextWalker get(String s)
get()
メソッドを
実行したときと同じ動きをする。
s
- 検索する文字列。
get()
メソッドを実行
したときと同じ動きをする。getString(String)
,
get()
,
search(String)
public TextWalker get(String s, boolean next)
get()
メソッドを
実行したときと同じ動きをする。
s
- 検索する文字列。next
- true の場合は,現在位置を指定した文字列の次に移動する。
get()
メソッドを実行
したときと同じ動きをする。getString(String,boolean)
,
get()
,
search(String,boolean)
public TextWalker getLine()
getLineString()
public char which(char[] c)
c
- 検索する文字。
public String betweenString(char c1, char c2)
TextWalker tw = new TextWalker("ab{cde}fg"); System.out.println(tw.betweenString('{','}'));上のプログラムを実行すると,コンソール上には "cde" が表示される。
TextWalker tw = new TextWalker("ab{cde{fg}hi}jk"); System.out.println(tw.betweenString('{','}'));上記のプログラムを実行すると,"cde{fg}hi" が表示される。
c1
- 取得開始文字。c2
- 取得終了文字。
between(char,char)
public String betweenString(String s1, String s2)
TextWalker tw = new TextWalker("ab<-cde->fg"); System.out.println(tw.betweenString("<-","->"));上のプログラムを実行すると,コンソール上には "cde" が表示される。
TextWalker tw = new TextWalker("ab<-cde<-fg->hi->jk"); System.out.println(tw.between("<-","->").getText());上記のプログラムを実行すると,"cde<-fg->hi" が表示される。
s1
- 取得開始文字列。s2
- 取得終了文字列。
between(String,String)
public String searchString(char c)
c
- 検索する文字。
search(char)
,
getString(char)
public String searchString(char c, boolean next)
c
- 検索する文字。next
- true の場合は,現在位置を指定した文字の次に移動する。
search(char,boolean)
,
getString(char,boolean)
public String searchString(String s)
s
- 検索する文字列。
search(String)
,
getString(String)
public String searchString(String s, boolean next)
s
- 検索する文字列。next
- true の場合は,現在位置を指定した文字列の次に移動する。
search(String,boolean)
,
getString(String,boolean)
public String getString()
isWalking()
メソッドが
false を返すようになる)。
get()
public String getString(char c)
getString()
メソッドを
実行したときと同じ動きをする。
c
- 検索する文字。
getString()
メソッドを実行
したときと同じ動きをする。get(char)
,
getString()
,
searchString(char)
public String getString(char c, boolean next)
getString()
メソッドを
実行したときと同じ動きをする。
c
- 検索する文字。next
- true の場合は,現在位置を指定した文字の次に移動する。
getString()
メソッドを実行
したときと同じ動きをする。get(char,boolean)
,
getString()
,
searchString(char,boolean)
public String getString(String s)
getString()
メソッドを
実行したときと同じ動きをする。
s
- 検索する文字列。
getString()
メソッドを実行
したときと同じ動きをする。get(String)
,
getString()
,
searchString(String)
public String getString(String s, boolean next)
getString()
メソッドを
実行したときと同じ動きをする。
s
- 検索する文字列。next
- true の場合は,現在位置を指定した文字列の次に移動する。
getString()
メソッドを実行
したときと同じ動きをする。get(String,boolean)
,
getString()
,
searchString(String,boolean)
public String getWord()
setWordSeparators(char[])
メソッドで指定された文字を語の区切
り文字として扱う。
setWordSeparators(char[])
public String getLineString()
getLine()
public boolean contains(String s)
s
- 調べる文字列。
public boolean contains(char c)
c
- 調べる文字。
public boolean skip(String s)
s
- 検索する文字列。
public boolean skip(char c)
c
- 検索する文字。
public void skip()
public void mark()
reset()
メソッドが呼び出されたときに
戻ることができるようにする。
public void reset()
mark()
メソッドで記録した位置に戻る。
public String toString()
Object
内の toString
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |