|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectto.tetramorph.starbase.util.StringEscape
public class StringEscape
文字列中の改行"\n"とイコール"="をエスケープ/アンエスケープ、およびsplitする。
'='をエスケープするとは、"\="というように、前に"\"を挿入すること。
"\n"なら"\\n"とする。"\"の文字がエスケープされるときは"\\"となる。
このようにしてエスケープされていない"=","\n"と区別がつくようにする。
splitとはエスケープされた文字列中から、エスケープされていない"\n","="を
見つけて、それをセパレータとしてトークンに分解する。
セパレータが"="としたとき、
"="という文字列をsplitすると、"",""という二つのトークンに分かれる。
"=Hoge"なら"","Hoge"に分かれる。
"Hoge="なら"Hoge",""に分かれる。
"Hoge=Payo"なら"Hoge","Payo"に分かれる。
""なら、""のまま。
"Hoge"なら"Hoge"のまま。
このクラスはDBのSPECIFIC_PROPERTIES表などにプロパティを書き出すために書かれた。
最初は一行で表現できるプロパティを保管することしか想定していなかったが、
長い設定ソースコードなどを保管する必要が出たためエスケープが必要になった。
最初、プロパティの保管は、次のようにキーと値を連結して一本の文字列にして、
それを表に登録していた。
key1=value1\n key2=value2\nDBから上記文字列を取り出したら、まず'\n'でsplitして各行に分割。 さらに'='でsplitしてキーと値に分割し、Propertiesにセットしていた。
コンストラクタの概要 | |
---|---|
StringEscape()
|
メソッドの概要 | |
---|---|
static List<String> |
enterSplit(String escstr)
エスケープされた文字列中からエスケープされていない'\n'キャラをみつけて、 それをセパレータとして文字列をトークンに分解して返す。 |
static List<String> |
equalSplit(String escstr)
エスケープされた文字列中からエスケープされていない'='キャラをみつけて、 それをセパレータとして文字列をトークンに分解して返す。 |
static String |
escape(String str)
エスケープ処理をする。 |
static String |
unescape(String escstr)
escape()でエスケープしたものを元に戻して返す。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public StringEscape()
メソッドの詳細 |
---|
public static String escape(String str)
public static String unescape(String escstr)
public static List<String> equalSplit(String escstr)
escstr
- escape()を使ってエスケープされた文字列。
public static List<String> enterSplit(String escstr)
escstr
- escape()を使ってエスケープされた文字列。
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |