public class hiText extends Object
修飾子とタイプ | フィールドと説明 |
---|---|
static String |
_v_ |
static String[] |
HTML_CHARs
HTML制御文字.
|
static String[] |
HTML_CHARs_ESCAPE
HTML_CHARsに対応するescape表記(エンティティー参照)セット
|
static String |
HTML_CHARs_STR
HTML制御文字文字列.
|
static String[] |
JAVA_CTRL_CHARs
文字列制御文字(引用符を除く).
|
static String[] |
JAVA_CTRL_CHARs_ESCAPE
文字列制御文字(引用符を除く)のESCAPE表現
|
static String |
JAVA_CTRL_CHARs_STR
文字列制御文字文字列(引用符を除く)
|
static String[] |
JSON_ADDITIONAL_CHARs
JSON追加エスケープ文字.
|
static String[] |
JSON_ADDITIONAL_CHARs_ESCAPE
JSON_CHARsに対応するescape表現
|
static String |
JSON_ADDITIONAL_CHARs_STR
正規表現制御文字を並べた文字列
|
static String[] |
JSON_ESCAPE_CHARs
JSON文字列制御文字(引用符を除く).
|
static String[] |
JSON_ESCAPE_CHARs_ESCAPE
文字列制御文字(引用符を除く)のESCAPE表現
|
static String |
JSON_ESCAPE_CHARs_STR
文字列制御文字文字列(引用符を除く)
|
String |
keep
後ろに/*が来るため、解決されない行文字.
|
static String[] |
REGEX_CHARs
正規表現制御文字セット.
|
static String[] |
REGEX_CHARs_ESCAPE
REGEX_CHARsに対応するescape表現
|
static String |
REGEX_CHARs_STR
正規表現制御文字を並べた文字列
|
static String[] |
XML_BODY_CHARs
XML-BODY部制御文字文字列.
|
static String[] |
XML_BODY_CHARs_ESCAPE
XML_CHARsに対応するescape表記(エンティティー参照)セット
|
static String |
XML_BODY_CHARs_STR
XML-BODY部制御文字文字列.
|
static String[] |
XML_CHARs
XML制御文字.
|
static String[] |
XML_CHARs_ESCAPE
XML_CHARsに対応するescape表記(エンティティー参照)セット
|
static String |
XML_CHARs_STR
XML制御文字文字列.
|
コンストラクタと説明 |
---|
hiText() |
修飾子とタイプ | メソッドと説明 |
---|---|
static String |
basePart(String text_,
char dlmt_)
特定文字で複数のパートに分断される文字列の最後のパートを除いた部分を得る.
|
static String |
basePart(String text_,
String dlmt_)
特定文字で複数のパートに分断される文字列の最後のパートを得る.
|
static String |
canonical(String str_)
空白文字列基準化.
|
static char |
charAt(CharSequence str_,
int pos_)
文字列の指定位置の文字を得る(範囲外指定可).
|
static String |
dbgStr(String str_)
デバグ表示用に短縮した文字列.
|
static String |
dbgStr(String str_,
int len_)
デバグ表示用に短縮した文字列.
|
static String |
detab(String text_,
int tab_)
タブを空白に置き換える.
|
static ArrayList<String> |
divide(String text_,
char dlmt_)
文字列を指定文字で分割しArrayList<String>を得る.
|
static ArrayList<String> |
divide(String text_,
char dlmt_,
long option_)
文字列をデリミタで単純分割する(コメント、引用処理エンジン).
|
static ArrayList<String> |
divide(String text_,
String dlmt_)
文字列を指定文字で分割しArrayList<String>を得る
divide(String,char,long) を参照してください。 |
static ArrayList<String> |
divide(String text_,
String dlmt_,
long option_)
文字列を指定文字で分割しArrayList<String>を得る
divide(String,char,long) を参照してください。 |
static String |
fill(String text_,
int len_)
指定長に満たない文字列に空白を付加し指定長にした文字列を得る.
|
static String |
fill(String text_,
int len_,
char fill_)
指定長に満たない文字列に指定文字を付加し指定長にした文字列を得る.
|
static String |
fill(String text_,
int len_,
String fill_)
指定長に満たない文字列に指定文字を付加し指定長にした文字列を得る.
|
static String |
fill2(String text_,
int len_)
全角半角を考慮したfill.
|
static String |
fill2(String text_,
int len_,
char fill_)
全角半角を考慮したfill.
|
static String |
htmlEscape(String text_)
HTML制御文字をエスケープする.
|
static int |
indexOfChar(String text_,
String chars_)
指定の文字群のいずれかの文字が最初に出現する位置を得る.
|
static int |
indexOfSpace(String text_)
最初の空白文字列位置を得る.
|
static boolean |
isAlphaNumeric(String text_)
英数字文字列かチェックする.
|
static boolean |
isDigit(char c_)
半角10進文字かチェックする.
|
static boolean |
isHex(char c_)
16進文字かチェックする.
|
static boolean |
isSpace(char c_)
空白文字かチェックする(全角空白対応).
|
static boolean |
isSpace(String text_)
空白文字列かチェックする(全角空白対応).
|
static String |
join_tokens(String[] tokens_,
int sta_,
int end_,
String dlmt_)
文字列配列の指定位置から指定位置までを連結する.
|
static String |
join_tokens(String[] tokens_,
String dlmt_)
文字列配列の指定位置から指定位置までを連結する.
|
static String |
join(List<String> list_)
文字列のリストを連結する.
|
static String |
join(List<String> list_,
String dlmt_)
文字列のリストを連結する.
|
static String |
join(String[] list_)
文字列のリストを連結する.
|
static String |
join(String[] list_,
String dlmt_)
文字列のリストを連結する.
|
static StringBuilder |
join(StringBuilder sb_,
Iterable objs_,
String dlmt_)
Objectのリストを文字列連結しStringBuilderに付加する.
|
static String |
justSize(String text_,
int len_,
char fill_)
指定長の文字列にする.
|
static String |
justSize(String text_,
int len_,
char fill_,
String over_)
指定長の文字列にする.
|
static String |
justSize2(String text_,
int len_,
char fill_)
半角/全角を考慮し指定長の文字列にする.
|
static String |
lastPart(String text_,
char dlmt_)
特定文字で複数のパートに分断される文字列の最後のパートを得る.
|
static String |
lastPart(String text_,
String dlmt_)
特定文字で複数のパートに分断される文字列の最後のパートを得る.
|
static int |
length2(String text_)
半角を単位とする文字列長.
|
static String |
regexEscape(String text_)
正規表現文字をエスケープする.
|
static String |
replace(String template_,
HashMap<String,String> replacement_)
置き換え名指定の簡易テンプレート機構.
|
static String |
replace(String template_,
HashMap<String,String> replacement_,
long option_)
置き換え名指定の簡易テンプレート機構.
|
static String |
replace(String template_,
String... args_)
置き換え名指定の簡易テンプレート機構
文字列中の指定部分を置き換えます。
|
static String |
replaceAll(String source_,
HashMap<String,String> replacements_)
単純文字列検索による全対応部分文字列置き換えを行う.
|
static String |
replaceAll(String source_,
String replacePatterns_)
複数パターンの文字列置き換えを行う.
|
static String |
replaceAll(String source_,
String[] targets_,
String[] replacements_)
単純文字列検索による全対応部分文字列置き換えを行う.
|
static String |
replaceAll(String source_,
String replacePatterns_,
char assign_dlmt_,
char ptn_dlmt_)
複数パターンの文字列置き換えを行う.
|
static String |
replaceAll(String source_,
String target_,
String replacement_)
単純文字列検索による全対応部分文字列置き換えを行う.
|
static String |
replaceUniCode(String str_)
文字列中のunicode表現"\\uXXXX"を1文字に置き換える.
|
void |
reset()
取り込み状態をリセットする.
|
static String |
shorten(String str_,
int len_)
文字列の短縮化;短縮時は中央部を短縮表示(..)に置き換える.
|
static String |
shorten(String str_,
int len_,
String fill_)
文字列の短縮化;短縮時は中央部を指定文字列にに置き換える.
|
static String |
shortenLast(String str_,
int len_)
文字列の短縮化;指定長より長い場合最後尾を短縮文字列に置き換える.
|
static String |
shortenLast(String str_,
int len_,
String indicate_)
文字列の短縮化;指定長より長い場合最後尾を短縮文字列に置き換える.
|
static String |
shortenLast2(String str_,
int len_,
String indicate_,
char fill_)
半角全角を考慮した文字列の短縮化;指定長より長い場合最後尾を短縮文字列に置き換える.
|
static String |
shortenTop(String str_,
int len_)
文字列の短縮化;指定長より長い場合最先頭を短縮文字列に置き換える.
|
static String |
shortenTop(String str_,
int len_,
String indicate_)
文字列の短縮化;指定長より長い場合最先頭を短縮文字列に置き換える.
|
static String |
space(int len_)
指定長の空白文字列を得る.
|
static String[] |
split(String text_,
char dlmt_)
文字列をデリミタで単純分割する(コメント、配列考慮).
|
static String[] |
split(String text_,
char dlmt_,
long option_)
文字列をデリミタで単純分割する(コメント、引用処理エンジン).
|
static String[] |
split(String text_,
String dlmt_)
文字列をデリミタで単純分割する(コメント、配列考慮).
|
static String[] |
split(String text_,
String dlmt_,
long option_)
文字列をデリミタで単純分割する.
|
static String[] |
splitLine(String text_,
char connect_char_)
文字列を改行コードで分割する(行連結文字指定付).
|
static String[] |
splitSimple(String text_,
char dlmt_)
文字列を指定文字で単純分割する.
|
static String[] |
splitSimple(String text_,
String dlmt_)
文字列を指定文字で単純分割する.
|
static String[] |
splitSimple(String text_,
String dlmt_,
long option_)
文字列を指定文字で単純分割する.
|
static String |
substring(String str_,
int pos_)
文字列の指定位置以降を取り出す(範囲外指定可).
|
static String |
substring(String str_,
int pos1_,
int pos2_)
文字列の指定範囲を取り出す(範囲外指定可).
|
static String[] |
tokens(String str_)
文字列をトークン分割する(引用符ブロック制御あり).
|
static String[] |
tokens(String str_,
char dlmt_)
文字列をトークン分割する(デリミッター指定).
|
static String[] |
tokens(String str_,
char dlmt_,
long option_)
文字列をトークン分割する(デリミッター指定).
|
static String[] |
tokens(String str_,
long option_)
文字列をトークン分割する(オプション指定).
|
static String[] |
tokens(String str_,
String dlmt_)
文字列をトークン分割する(デリミッター指定).
|
static String[] |
tokens(String str_,
String dlmt_,
long option_)
文字列をトークン分割する(デリミッター、オプション指定).
|
static String[] |
tokens(String str_,
String dlmt_,
String week_dlmt_,
String quote_pairs_,
long option_)
文字列をトークン分割する(デリミッター、弱デリミッター、引用符ペアリスト、オプション).
|
static BufferedReader |
toUpperCase(BufferedReader br_)
引用符で囲まれた部分以外を大文字に変換する.
|
static String |
trim(String str_)
前後の空白文字(全角空白を含む)を取り払う.
|
static String |
trim(String text_,
int n_)
文字列の前後から指定数削除する.
|
static String |
trim(String text_,
String trim_)
文字列の前後から指定文字を削除する.
|
static ArrayList<String> |
trimComment(List<String> lines_)
複数行の文字列からコメント分を削除する.
|
static String |
trimComment(String str_)
文字列からコメント分を削除する.
|
static String[] |
trimComment(String[] lines_)
文字列からコメント分を削除する.
|
String |
trimCommentInLine(String line_)
行データからコメント部を削除する.
|
static String |
trimLast(String str_)
後ろの空白文字を削除.
|
static String |
trimLast(String text_,
int n_)
文字列の最後から指定数削除する.
|
static String |
trimLast(String text_,
String trim_)
文字列の前方にある指定文字並びを削除する.
|
static String |
trimQuote(String text_)
文字列の先頭と最後の引用符を削除する.
|
static String |
trimTop(String str_)
先頭の空白文字を削除.
|
static String |
trimTop(String text_,
int n_)
文字列の先頭から指定数削除する.
|
static String |
trimTop(String text_,
String trim_)
文字列の前方にある指定文字並びを削除する.
|
static String |
xmlEscape(String text_)
XML制御文字をエスケープする.
|
static String |
xmlEscape(String text_,
long option_)
XML制御文字をエスケープする/元に戻する.
|
static String |
xmlUnEscape(String text_)
XML制御エスケープ文字をを元に戻す(簡易版).
|
public static final String[] REGEX_CHARs
正規表現の制御文字をエスケープするテーブルです。REGEX_CHARs_ESCAPEと合わせて使用します。
REGEX_CHARs | \ | * | + | . | ? | { | } | ( | ) | [ | ] | ^ | $ | | |
REGEX_CHARs_ESCAPE | \\ | \* | \+ | \. | \? | \{ | \} | \( | \) | \[ | \] | \^ | \$ | \| |
public static final String[] REGEX_CHARs_ESCAPE
public static final String[] XML_CHARs
XMLの制御文字をエスケープするテーブルです。XML_CHARs_ESCAPEと合わせて使用します。
XML_CHARs | & | < | > | " | ' |
XML_CHARs_ESCAPE | & | < | > | " | ' |
public static final String[] XML_CHARs_ESCAPE
public static final String[] XML_BODY_CHARs
public static final String[] XML_BODY_CHARs_ESCAPE
public static final String[] HTML_CHARs
HTMLの制御文字をエスケープするテーブルです。HTML_CHARs_ESCAPEと合わせて使用します。
XML制御文字に改行と半角空白とタブを加えたものとなっています。
改行は<br>に半角空白とタブは に
置き換わります。
HTML_CHARs | & | < | > | " | '; |
HTML_CHARs_ESCAPE | & | < | > | " | ' |
public static final String[] HTML_CHARs_ESCAPE
public static final String[] JAVA_CTRL_CHARs
JAVA_CTRL_CHARs | 逆スラッシュ | 改行 | タブ | バックスペース | キャリッジリターン | 改ページ |
REGEX_CHARs_ESCAPE | \\ | \n | \t | \b | \r | \f |
public static final String JAVA_CTRL_CHARs_STR
public static final String[] JAVA_CTRL_CHARs_ESCAPE
public static final String[] JSON_ADDITIONAL_CHARs
public static final String JSON_ADDITIONAL_CHARs_STR
public static final String[] JSON_ADDITIONAL_CHARs_ESCAPE
public static final String[] JSON_ESCAPE_CHARs
JAVA_CTRL_CHARs | 逆スラッシュ | 改行 | タブ | バックスペース | キャリッジリターン | 改ページ | スラッシュ |
REGEX_CHARs_ESCAPE | \\ | \n | \t | \b | \r | \f | \/ |
public static final String JSON_ESCAPE_CHARs_STR
public static final String[] JSON_ESCAPE_CHARs_ESCAPE
public String keep
public void reset()
public String trimCommentInLine(String line_)
line_
- 行データpublic static String trimComment(String str_)
C言語形式のコメントを削除します。
改行コードは\nです。
コメントは/*から*/までと//から改行までです。
ネストはしません。
互いに相手をコメントアウトします。
引用符の中の/*、*/、//はコメントとなりません。
シングルクオート、ダブルクオートとも引用符扱いをします。
引用符の中では逆スラッシュはエスケープ扱いとなります。
str_
- 文字列public static ArrayList<String> trimComment(List<String> lines_)
C言語形式のコメントを削除します。
1要素が1行となります。要素中の改行コードは見ません
コメントは/*から*/までと//から改行までです。
ネストはしません。
互いに相手をコメントアウトします。
引用符の中の/*、*/、//はコメントとなりません。
シングルクオート、ダブルクオートとも引用符扱いをします。
引用符の中では逆スラッシュはエスケープ扱いとなります。
lines_
- 複数行の文字列(リスト1要素が1行)public static String[] trimComment(String[] lines_)
C言語形式のコメントを削除します。
1要素が1行となります。要素中の改行コードは見ません
コメントは/*から*/までと//から改行までです。
ネストはしません。
互いに相手をコメントアウトします。
引用符の中の/*、*/、//はコメントとなりません。
シングルクオート、ダブルクオートとも引用符扱いをします。
引用符の中では逆スラッシュはエスケープ扱いとなります。
lines_
- 複数行の文字列(リスト1要素が1行)public static String trimQuote(String text_)
文字列の先頭と最後がともに同じ引用符の場合削除します。 引用符はダブルクオートでもシングルクオートでも構いません。
abc -> abc "abc" -> abc 'abc' -> abc "abc -> "abc (そのまま) 'abc -> 'bc (そのまま) "abc' -> "abc' (そのまま) "abc\\" -> "abc\" (そのまま) "abc\\\\" -> abc\\\\
text_
- 文字列public static String[] split(String text_, char dlmt_, long option_)
hiText.splitはコメント、引用符を考慮する必要がある場合、本メソッド を呼び出しています。
hiU.CHECK_COMMENT | //から行端まで/*から*/まではコメントと解釈し、 コメント内のデリミタは無視されます。 |
hiU.CHECK_QUOTE |
引用符の中のデリミタは無視されます
a,"b,c","d\"e,f\"g",h オプションなし a "b c" "d\"e f\"g" h hiU.CHECK_QUOTE a "b,c" "d\"e,f\"g" h |
hiU.NO_ESCAPE |
hiU.CHECK_QUOTEと組み合わせるとに'\'をエスケープと解釈しません。a,"b,c","d\"e,f\"g",h hiU.CHECK_QUOTE a "b,c" "d\"e,f\"g" h hiU.CHECK_QUOTE|hiU.NO_ESCAPE a "b,c" "d\"e f\"g" h |
hiU.AS_NULL | 空文字列をnullとします。 |
hiU.OMIT_NULL | 空文字列を無視します |
hiU.KEEP_LAST_NULL | 最後がデリミタで終わっていた場合、空文字列が最後にあるものとします |
text_
- 解析する文字列dlmt_
- デリミッターoption_
- オプションpublic static String[] split(String text_, String dlmt_, long option_)
split(String,char,long)
参照text_
- 解析する文字列dlmt_
- デリミッター,先頭文字で分割します。option_
- オプションpublic static String[] split(String text_, char dlmt_)
split(String,char,long)
参照
hiText.split(text_,dlmt_,NO_OPTION);
text_
- 解析する文字列dlmt_
- デリミッター文字。public static String[] split(String text_, String dlmt_)
split(String,char,long)
参照
hiText.split(text_,dlmt_,NO_OPTION);
text_
- 解析する文字列dlmt_
- デリミッター,先頭文字で分割します。public static String detab(String text_, int tab_)
text_
- 元の文字列tab_
- タブストップ 8,4などpublic static ArrayList<String> divide(String text_, char dlmt_, long option_)
hiText.splitはコメント、引用符を考慮する必要がある場合、本メソッド
を呼び出しています。
オプション | 説明 |
hiU.KEEP_LAST_NULL | 文字列がデリミタで終わる場合、最後に空要素が追加されます。 |
hiU.OMIT_LAST_SPACE | 最後のデリミタの後空白文字のみが連続する場合、要素としません。 |
hiU.CHECK_QUOTE | 引用符をチェックし、引用符内のデリミタ文字では分割しません。 引用符はそのまま文字列に入れられます。 |
hiU.CHECK_COMMENT |
C形式のコメントをチェックし、コメント内のデリミタ文字では分割しません。
/*から*/まで、または//から改行までがコメント
と解釈されます。 コメント文字列や改行はそのまま文字列に入れられます。 ただし、デリミタとして改行を指定した場合は//はコメント扱いしません。 |
hiU.OMIT_NULL | 空文字列要素を廃棄します。 |
hiU.AS_NULL | 空文字列をnull要素で返します。 |
hiU.NO_ESCAP | hiU.CHECK_QUOTE指定時に、引用符の中の引用符のエスケープ(逆/)を考慮しません。 |
text_
- 解析する文字列dlmt_
- デリミッターoption_
- オプションpublic static ArrayList<String> divide(String text_, char dlmt_)
divide(String,char,long)
を参照してください。text_
- 文字列dlmt_
- 区切り文字split(String,String,long)
,
divide(String,String,long)
,
join(String[],String)
public static ArrayList<String> divide(String text_, String dlmt_)
divide(String,char,long)
を参照してください。text_
- 文字列dlmt_
- 区切り文字split(String,String,long)
,
divide(String,String,long)
,
join(String[],String)
public static ArrayList<String> divide(String text_, String dlmt_, long option_)
divide(String,char,long)
を参照してください。text_
- 文字列dlmt_
- 区切り文字option_
- オプションsplit(String,String,long)
,
divide(String,String,long)
,
join(String[],String)
public static String join(String[] list_, String dlmt_)
list_
- 連結する文字列のリストdlmt_
- 連結文字split(String,String,long)
,
divide(String,String,long)
,
join(String[],String)
public static String join(String[] list_)
list_
- 連結する文字列のリストsplit(String,String,long)
,
divide(String,String,long)
,
public static String join(List<String> list_, String dlmt_)
list_
- 連結する文字列のリストdlmt_
- 連結文字split(String,String,long)
,
divide(String,String,long)
,
public static String join(List<String> list_)
list_
- 連結する文字列のリストhiU.join(String[],連結文字列)
,
hiU.join(String[])
,
hiU.join(List<String>,連結文字列)
,
hiU.join(List<String>)
public static StringBuilder join(StringBuilder sb_, Iterable objs_, String dlmt_)
各ObjectはhiU.str(obj)を用いて文字列化されStringBuilderに追加されます。
2番目以降はその前に指定デリミタが付加されます。
sb_
- ここに追加されるobjs_
- オブジェクトのリストdlmt_
- 区切り記号public static String join_tokens(String[] tokens_, int sta_, int end_, String dlmt_)
tokens_
- 連結したい文字列配列sta_
- 先頭位置end_
- 最終位置(この位置は含まない)dlmt_
- この中の文字以外は前後前との間に空白を入れるpublic static String join_tokens(String[] tokens_, String dlmt_)
tokens_
- 連結したい文字列配列dlmt_
- この中の文字以外は前後前との間に空白を入れるpublic static String[] splitSimple(String text_, String dlmt_, long option_)
文字列を指定デリミタ文字で単純分割します。String.split()と異なり
デリミタ文字は正規表現扱いをしません。split(String,char,long)
参照
text_
- 解析する文字列dlmt_
- デリミッター,先頭文字で分割します。option_
- オプションpublic static String[] splitSimple(String text_, char dlmt_)
文字列を指定デリミタ文字で単純分割します。String.split()と異なり
デリミタ文字は正規表現扱いをしません。split(String,char,long)
参照
text_
- 解析する文字列dlmt_
- デリミッターpublic static String[] splitSimple(String text_, String dlmt_)
文字列を指定デリミタ文字で単純分割します。String.split()と異なり
デリミタ文字は正規表現扱いをしません。split(String,char,long)
参照
text_
- 解析する文字列dlmt_
- デリミッター,先頭文字で分割します。public static String[] splitLine(String text_, char connect_char_)
文字列を改行コードで分割します。ただし、行の最後が指定文字 あるいは指定文字につながる空白文字列で終わっている場合、 改行コードと指定文字は無視され一行となります。
text_
- 文字列connect_char_
- 行接続文字 逆スラッシュやカレットなどpublic static String[] tokens(String str_)
文字列をトークン分割します。
空白文字
がおよび引用文字がデリミッターとなります。
シングルクオートあるいは
ダブルクオートで囲まれた引用符ブロックは
分割しません。引用符自体はトークンに含みません。
引用符ブロックとブロックまたはデリミッター以外の文字がならんでいる
場合トークンとして連結されます。
String tokens[]= hiText.tokens(" ab 'cd e' f\u3000 ' gh i':j"); では 「ab」「cd e」「f」「 gh i:j」 が得られます。(\u3000は全角空白です)
シングルクオート、ダブルクオートは互いに相手を無効にしますので、 次のように引用符を含むトークンを書くことができます。
String tokens[]= hiText.tokens("ab 'c\"de\"f'\"g'h\"i jk"); では 「ab」「c"de"fg'hi」「jk」 が得られます。
これはtokens(分割する文字列,"",hiU.NO_OPTION)
と同じです。
str_
- 文字列public static String[] tokens(String str_, long option_)
文字列をトークン分割します。シングルクオートあるいは
ダブルクオートで囲まれた引用符ブロックは
分割しません。
オプションについてはtokens(String,String,long)
を参照してください。
空白文字
の並びが一個のデリミッターとなります。
String tokens[]= hiText.tokens(" ab 'cd e' f\u3000 ' gh i':j" ,hiU.KEEP_QUOTE); では 「ab」「'cd e'」「f」「' gh i':j」 が得られます。(\u3000は全角空白です)
これはtokens(分割する文字列,"",オプション)
とほぼ同じです。
str_
- 分割する文字列option_
- オプションpublic static String[] tokens(String str_, String dlmt_)
指定デリミッターで文字列をトークン分割します。
デリミッターに引用符を指定することはできません。シングルクオートあるいは
ダブルクオートで囲まれた引用符ブロックは分割しません。
空のトークンは無視されます。
String tokens[]= hiText.tokens("ab cd:e;f ; :' ;gh:'",":"); では 「ab」「cd」「e;f」「;」「 ;gh:」 が得られます。 String tokens[]= hiText.tokens("ab cd:e;f ; :' ;gh:'",":;"); では 「ab」「cd」「e」「f」「 ;gh:」 が得られます
str_
- トークン分割する文字列dlmt_
- 追加デリミッターデリミッターpublic static String[] tokens(String str_, char dlmt_)
tokens(String,String)
と同じです。str_
- トークン分割する文字列dlmt_
- 追加デリミッターデリミッターpublic static String[] tokens(String str_, char dlmt_, long option_)
tokens(String,String,long)
を参照してください。str_
- トークン分割する文字列dlmt_
- 追加デリミッターデリミッターoption_
- オプションpublic static String[] tokens(String str_, String dlmt_, long option_)
指定デリミッターの前後に空白文字
が0個以上付
*いたものを一つのデリミッター
として文字列をトークン分割します。オプション指定
を持ちます。オプションは|(or演算)で複数指定できます。
オプション | 説明 |
hiU.KEEP_QUOTE | 引用符をトークン文字列に含む。 |
hiU.OMIT_NULL | 空文字列要素を廃棄します |
hiU.IGNORE_QUOTE | 引用符を通常の文字扱いします |
hiU.KEEP_REDUNDANCY hiU.KEEP_DELIMITER |
デリミッターをトークンとして返す。 |
hiU.OMIT_SPACE | 空白をデリミッターとして通知しません |
hiU.NO_ESCAPE | 文字列中のエスケープ文字を変換しません |
hiU.SPACE_AS_DLMT | 空白文字列を弱デリミッター扱いします。 |
hiU.CONCAT_STR | 引用符で囲まれた文字列を連結します。 |
hiU.AS_NULL | 空文字列をnullポインタで表します。 |
hiU.KEEP_SPACE | トークンの前後にあるスペースを保持します。 |
hiU.MEMORY_SAVE |
分割した文字列にintern() を作用させ、同一内容のObjectが多数生成されることを防ぎます。
|
KEEP_QUOTE
KEEP_QUOTEを指定すると引用符をトークンに含めます。
String tokens[]= hiText.tokens(" ab cd:e;f ; :' ;gh:'" ,":;",hiU.KEEP_QUOTE); では 「ab」「cd」「e」「f」「' ;gh:'」 が得られます。
OMIT_NULL
OMIT_NULLを指定すると空トークンを削除します。
String tokens[]= hiText.tokens(" ab cd:e;f ; :' ;gh:'",":;"); では 「ab」「cd」「e」「f」「」「 ;gh:」 が得られます。 String tokens[]= hiText.tokens(":ab cd:e;f ; :' ;gh:'",":;" ,hiU.OMIT_NULL); では 「」「ab」「cd」「e」「f」「 ;gh:」 が得られます。
KEEP_REDUNDANCY , KEEP_DELIMITER
KEEP_REDUNDANCY(冗長性保持)またはKEEP_DELIMITERを指定するとデリミッターもトークンと して返します。連続するデリミッターは空白であってもばらばらに返します。
String tokens[]= hiText.tokens(" ab cd:e;f ; :' ;gh:'",":;" ,hiU.KEEP_REDUNDANCY|hiU.KEEP_QUOTE); では 「 」「ab」「 」「cd」「:」「e」「;」「f」「 」「;」「 」「 」「:」「' ;gh:'」 が得られます。
KEEP_QOUTEと共に用いると、全ての文字を取得できます。
OMIT_SPACE
KEEP_REDUNDANCYが指定されていても、空白をデリミッターとして通知しません
String tokens[]= hiText.tokens(" ab cd:e;f ; :' ;gh:'",":;" ,hiU.KEEP_REDUNDANCY|hiU.KEEP_QUOTE|hiU.OMIT_SPACE); では 「ab」「cd」「:」「e」「;」「f」「;」「:」「' ;gh:'」 が得られます。
SPACE_AS_DLMT
SPACE_AS_DLMTを指定すると空白文字を弱デリミッターとして
String tokens[]= hiText.tokens(" ab cd:e;f ; :' ;gh:'",":;" ,hiU.KSPACE_AS_DLMT); では 「ab」「cd」「e」「f」「」「 ;gh:」 が得られます。
先頭の空白では空トークンが作成されないことに注意してください。空白は 弱いデリミッターであり空白は空トークンを生成しません。
KEEP_SPACE
KEEP_SPACEを指定すると、空白を通常の文字として扱い、削除が行われません。
String tokens[]= hiText.tokens(" ab cd:e;f ; :' ;gh:'",":;" ,hiU.KEEP_SPACE); では 「 ab cd」「e」「f 」「 」「 ;gh:」 が得られます。
NO_ESCAPE
文字列中のエスケープ文字を変換しません
String tokens[]= hiText.tokens(" ab\\nc d\\\\e f\\tg",hiU.NO_ESCAPE); では 「ab\\c」「d\\\\e」「f\\tg」 が得られます。 付けない場合は、エスケープ文字が変換されます。 String tokens[]= hiText.tokens(" ab\\nc d\\\\e f\\tg"); では 「ab c」「d\\e」「f g」 が得られます。fとgの間にはタブが入ります
CONCAT_STR
引用符で囲まれた部分をデリミタが無い前後の文字列と連結します。
String tokens[]= hiText.tokens(" 'AB' 'CD' , x 'EF'"),"," ,hiU.CONCAT_STR); では 「ABCD」「xEF」 が得られます。引用符で囲まれる部分が別の行になっても連結されます。
str_
- トークン分割する文字列dlmt_
- デリミッターoption_
- オプションpublic static String[] tokens(String str_, String dlmt_, String week_dlmt_, String quote_pairs_, long option_)
文字列をトークン分割します。
デリミッター、弱デリミッター、引用符ペアリスト、オプションの指定ができます。
弱デリミッター:デフォルトは空白文字
通常は空白文字が弱デリミッターとなります。
一般文字に挟まれると文字区切りとして働きます。ただし
連続する弱デリミッターは1個のデリミッター扱いとなります。通常のデリミッター
に並ぶ弱デリミッターは区切りとしては無視されます。対象文字列の先頭と最後の弱デリミッター
は区切りとしては無視されます。
String tokens[]= hiText.tokens("_ab_cd:e;f_; _:'x ;gh:'" ,":;",hiU.SPACEs_STR+"_" ,null,hiU.NO_OPTION); では'_'も空白と同じ扱いを受け 「ab」「cd」「e」「f」「x ;gh:」 が得られます。nullを指定するとデフォルトが採られます。
引用符ペアリスト:デフォルトは"\"\"''"
開始引用符と終了引用符のペア(2文字)を必要に応じならべた文字列で指定します。 ダブルクオート、シングルクオート以外の文字で引用ブロックを指定できます。
String tokens[]= hiText.tokens(" {ab cd}:e;%f ;% :'x ;gh:'" ,":;",null,"{}%%",hiU.NO_OPTION); では{から}まで%から%が引用ブロック扱いとなり 「ab cd」「e」「f ;」「'x」「gh」「'」 が得られます。シングルクオートは通常の文字扱いとなっています。
str_
- 解析する文字列dlmt_
- デリミッターweek_dlmt_
- 弱デリミッターquote_pairs_
- 引用符ペアリストoption_
- オプションpublic static String replaceAll(String source_, String target_, String replacement_)
正規表現を用いず部分文字列の全置き換えを行います。
StringクラスのreplaceAll()と異なり、対象パターン指定が正規表現ではなく
単純文字列なので、記号を変換する場合に、神経を使わなくて済みます。
String s="4*a*b"; // *を・に変える String s1= s.replaceAll("*","・"); // StringのreplaceAllはNG String s2= hiText.replaceAll(s,"*","・"); // OK
対象オブジェクトが無い場合は元のStringオブジェクトが戻りますので==で 置き換えがあったかどうか判断できます。
String s="x=${abc};"; // String s2= hiText.replaceAll(s,"${xyz}","10"); if( s2==s ){// 変更なし s2= hiText.replaceAll(s,"${abc}","200"); }
source_
- 元の文字列target_
- 置き換え対象となる部分文字列replacement_
- 置き換え後の部分文字列public static String replaceAll(String source_, String[] targets_, String[] replacements_)
正規表現を用いず部分文字列の全置き換えを行います。
複数の置き換えを順次行います。先に置き換えた部分は後で置き換え対象となります。
source_
- 元の文字列targets_
- 置き換え対象となる部分文字列replacements_
- 置き換え後の部分文字列public static String replaceAll(String source_, String replacePatterns_, char assign_dlmt_, char ptn_dlmt_)
対応区切りとパターン区切りによって示される複数の文字列置き換えパターンによって部分文字列を置き前ます。
hiText.replaceAll("ABCDEFGA","A=xx;C=yy;EF=zzz",'=',';'); -> xxByyDzzzGxx
各対応パターンの置き換えは文字列の先頭から順次行われます。置き換えられた場所が再び対象となることはありません。 複数のパターンの置き換えは並びの順に行われます。
hiText.replaceAll("ABCD","A=xAx;C=yCy;yCy=zzz",'=',';'); -> xAxBzzzD AはxAxに置き換えられるが、xAxがxxAxxとなることはない CはyCyに置き換えられた後次のパターン置き換えでzzzに置き換えられる
source_
- 元の文字列replacePatterns_
- 置き換えパターンassign_dlmt_
- 対応区切りptn_dlmt_
- パターン区切りpublic static String replaceAll(String source_, String replacePatterns_)
対応区切りとパターン区切りによって示される複数の文字列置き換えパターンによって部分文字列を置き前ます。
対応区切りは'=',パターン区切りは';'となります。
hiText.replaceAll("ABCDEFGA","A=xx;C=yy;EF=zzz"); -> xxByyDzzzGxx
source_
- 元の文字列replacePatterns_
- 置き換えパターンpublic static String replaceAll(String source_, HashMap<String,String> replacements_)
正規表現を用いず部分文字列の全置き換えを行います。
複数の置き換えを行います。前から順に置き換えます。一度置き換えた部分は後の置き換え対象とはなりません。
source_
- 元の文字列replacements_
- 置き換え対象をキーとし置き換え後を値とした辞書public static String canonical(String str_)
前後の空白文字列を削除し、途中の空白文字列の連続を1個の半角空白に
置き換えます。
文字列全体が空白文字でできている場合1個の空白になります。
trim(String)
では
空文字列になることに留意してください。
全角空白も空白として取り扱われます。
str_
- 文字列public static String trim(String str_)
Stringクラスのtrim()メソッド
は残念ながら全角空白を取り扱えません。
全角空白も取り払えるようにしたメソッドです。
文字列全体が空白文字でできている場合1個の空文字列になります。
canonical(String)
では1文字の空白になることに留意して
ください。
str_
- 文字列public static String trimLast(String str_)
str_
- 文字列public static String regexEscape(String text_)
文字列中の正規表現制御文字をエスケープします。
次の文字が対象となります。
\ * + . ? { } ( ) [ ] ^ $ |
ハイフン(-)は[]内のみで意味を持つものですのでエスケープ対象とはしません。
text_
- エスケープしたい文字列。nullの場合は長さ0の文字列が返るpublic static String xmlEscape(String text_)
文字列中のXML制御文字をエスケープします。
次の文字が対象となります。
& -> & < -> < > -> > " -> " ' -> '
ハイフン(-)は[]内のみで意味を持つものですのでエスケープ対象とはしません。
text_
- エスケープしたい文字列。nullの場合は長さ0の文字列が返るpublic static String xmlUnEscape(String text_)
文字列中のXML制御文字をエスケープします。
次の文字が対象となります。
" -> ' ' -> " > -> > < -> < & -> &
ハイフン(-)は[]内のみで意味を持つものですのでエスケープ対象とはしません。
text_
- エスケープを戻したい文字列。nullの場合は長さ0の文字列が返るpublic static String xmlEscape(String text_, long option_)
元に戻すのは未実装
文字列中のXML制御文字をエスケープまたは、エスケープを元に戻します。
エスケープ時は2バイト文字を16進数値参照にすることもできます。
次の文字が対象となります。
text_
- エスケープしたい文字列。nullの場合は長さ0の文字列が返るoption_
- hiU.NUMERICAL_REFERENCE
:16進数値参照を用いる。hiU.DECODE
:エスケープを元に戻すpublic static String htmlEscape(String text_)
文字列中のHTML制御文字をエスケープします。
次の文字が対象となります。
& -> & < -> < > -> > " -> " ' -> ' 改行 -> <br> 空白 ->   タブ ->  
ハイフン(-)は[]内のみで意味を持つものですのでエスケープ対象とはしません。
text_
- エスケープしたい文字列。nullの場合は長さ0の文字列が返るpublic static String replace(String template_, String... args_)
文字列中の指定部分を置き換えます。文字列には置き換え対象と
なる部分を${名前}の形で記述しておきます。引数として"名前=置き換え文字列"
を指定すると${名前}部分が置き換わります。
置き換えは順次行います。先に置き換えた部分は後の置き換え対象となります。
System.out.printf(hiU.replace( " public ${type} get_${type}(){%n" +" return new ${type}(${arg});%n" +" }%n" ,"type=Box","arg=this.size")); ---- 出力 public Box get_Box(){ return new Box(this.size); }
現版では$や=のエスケープ法は用意してありません。
template_
- テンプレート文字列args_
- 置き換え指定public static String replace(String template_, HashMap<String,String> replacement_)
replace(String,String...)
の置き換え情報を辞書にしたものです。
置き換え対象は${名前}の形の部分です。
置き換えは先頭に近い要素から行われ、一旦置き換えた部分は、その後対象とは
なりません。
template_
- テンプレート文字列replacement_
- 置き換え指定public static String replace(String template_, HashMap<String,String> replacement_, long option_)
hiText.replace(Strin,String ...)
の置き換え情報を辞書にしたものです。
置き換え対象は${名前}の形の部分です。
置き換えは先頭に近い要素から行われ、一旦置き換えた部分は、その後対象とは
なりません。
template_
- テンプレート文字列replacement_
- 置き換え指定option_
- hiU.AS_NULL
を指定すると、合致しなかった${...}は消去されます。public static BufferedReader toUpperCase(BufferedReader br_)
引用符で囲まれた部分以外の文字を全て大文字に変換します。
IBMが関連する仕様では大文字小文字の区別ができない(IBMの人たちは頭の中のバスが5bit幅)
ため、IBM式貧弱仕様の文(SQLなど)を解析する前処理。
一旦全文を読み込むことに注意してください。
br_
- 入力ストリームRuntimeException
- IOException
をcauseとして持つ。public static String shorten(String str_, int len_)
文字列を指定長に短縮します。指定長を超える場合は、中央部を".." に置き換えます。
hiText.shorten("12345678",9) -> 12345678 hiText.shorten("123456789",9) -> 123456789 hiText.shorten("1234567890",9) -> 1234..890 hiText.shorten("12345678901",9) -> 1234..901
str_
- 短縮表示する文字列len_
- 長さpublic static String shorten(String str_, int len_, String fill_)
文字列を指定長に短縮します。指定長を超える場合は、中央部を指定文字列 に置き換えます
hiText.shorten("12345678",9,"##") -> 12345678 hiText.shorten("123456789",9,"##") -> 123456789 hiText.shorten("1234567890",9,"##") -> 1234##890 hiText.shorten("12345678901",9,"##") -> 1234##901
str_
- 短縮表示する文字列len_
- 長さfill_
- 短縮を表す文字列public static String shortenTop(String str_, int len_)
文字列を指定長に短縮します。指定長を超える場合は、先頭を.. に置き換えます。
hiText.shortenTop("12345678",9) -> 12345678 hiText.shortenTop("123456789",9) -> 123456789 hiText.shortenTop("1234567890",9) -> ..4567890 hiText.shortenTop("12345678901",9) -> ..5678901
補足:
shortenenTopとせずshortenTopとしているのはshortenenTopではTopを無くすという
否定指定となり混乱を生じるからです。shortenTopは短縮してTopを見せるという
ニュアンスです。
str_
- 短縮表示する文字列len_
- 長さpublic static String shortenTop(String str_, int len_, String indicate_)
文字列を指定長に短縮します。指定長を超える場合は、先頭を短縮を表す文字列 に置き換えます。
hiText.shortenTop("12345678",9,"##") -> 12345678 hiText.shortenTop("123456789",9,"##") -> 123456789 hiText.shortenTop("1234567890",9,"##") -> ##4567890 hiText.shortenTop("12345678901",9,"##") -> ##5678901
str_
- 短縮表示する文字列len_
- 長さindicate_
- 短縮を表す文字列public static String shortenLast(String str_, int len_)
文字列を指定長に短縮します。指定長を超える場合は、最後尾を.. に置き換えます。
hiText.shortenLast("12345678",9) -> 12345678 hiText.shortenLast("123456789",9) -> 123456789 hiText.shortenLast("1234567890",9) -> 1234567.. hiText.shortenLast("12345678901",9) -> 1234567..
str_
- 短縮表示する文字列len_
- 長さpublic static String shortenLast(String str_, int len_, String indicate_)
文字列を指定長に短縮します。指定長を超える場合は、最後尾を短縮を表す文字列 に置き換えます。
hiText.shortenLast("12345678",9,"##") -> 12345678 hiText.shortenLast("123456789",9,"##") -> 123456789 hiText.shortenLast("1234567890",9,"##") -> 1234567## hiText.shortenLast("12345678901",9,"##") -> 1234567##
str_
- 短縮表示する文字列len_
- 長さindicate_
- 短縮を表す文字列public static String shortenLast2(String str_, int len_, String indicate_, char fill_)
文字列を指定長に短縮します。指定長を超える場合は、最後尾を短縮を表す文字列 に置き換えます。
hiText.shortenLast("色は匂へど",11,"短縮",'#') -> 色は匂へど hiText.shortenLast("色は匂へど",10,"短縮",'#') -> 色は匂へど hiText.shortenLast("色は匂へど",9,"短縮",'#') -> 色は#短縮 hiText.shortenLast("色は匂へど",8,"短縮",'#') -> 色は短縮
str_
- 短縮表示する文字列len_
- 長さ(半角長)indicate_
- 短縮を表す文字列(全角/半角可)fill_
- 半角の埋め文字(半角)public static String replaceUniCode(String str_)
本メソッドは文字列中の"\\u[0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z]" パターンをunicode表現と解釈し1文字に置き換えます。
str_
- unicode表現を含む文字列public static int indexOfChar(String text_, String chars_)
text_
- 対象文字列chars_
- 文字群public static final int indexOfSpace(String text_)
hiU.SPACEs_STR
のいずれかの文字が最初に出現する位置を探します。text_
- 対象文字列public static final boolean isSpace(char c_)
hiU.SPACEs_STR
のいずれかチェックします。c_
- チェックする文字public static boolean isSpace(String text_)
hiU.SPACEs_STR
のいずれかチェックします。text_
- チェックする文字列public static boolean isAlphaNumeric(String text_)
hiU.ALPHA_NUMERIC_STR_EXPR_PAT
.matcher(text_).matches();
text_
- 文字列public static final boolean isDigit(char c_)
指定文字が0~9に含まれるかチェックします。
java.lang.Character#isDigit()と異なり別の文字範囲による予期せぬ動作を避けることができます。
c_
- チェックする文字public static final boolean isHex(char c_)
指定文字が0~9,a~f,A~Fに含まれるかチェックします。
c_
- チェックする文字public static char charAt(CharSequence str_, int pos_)
範囲外の位置を指定すると'\\0'が返ります
str_
- 文字列pos_
- 位置(0オリジン)public static String substring(String str_, int pos_)
str_
- 文字列pos_
- 位置(0オリジン)public static String substring(String str_, int pos1_, int pos2_)
範囲外の位置を指定すると範囲内で解釈されます。
例: "hamburger".substring(4,100) returns "urger" "smiles".substring(-11, 5) returns "mile"
str_
- 文字列pos1_
- 開始位置pos2_
- 終了+1の位置(この位置の文字を含まない)public static String trim(String text_, int n_)
次の作業と同等です。単純ですが、頻度が高くかつ間違いやすいので関数化しました。
if( text==null ) text=""; else if( text.length() >= n*2 ) text=""; text=text.substring(n,text.length()-n);
text_
- 元の文字列n_
- 削除する文字数public static String trim(String text_, String trim_)
String text=": \t\"aaa\"\n"; String trimed= hiText.trim(text,": \t\"\n"); ->aaa
text_
- 元の文字列trim_
- 削除する文字(複数可)public static String trimTop(String text_, int n_)
文字列の先頭から指定数削除します。
次の作業と同等です。単純ですが、頻度が高くかつ間違いやすいので関数化しました。
// String original; String new= original.length()>n?original.substring(n):"";
text_
- 元の文字列n_
- 削除する文字数public static String trimTop(String text_, String trim_)
String text=": \t\"aaa\"\n"; String trimed= hiText.trim(text,": \t\"\n"); -<aaa
text_
- 元の文字列trim_
- 削除する文字(複数可)public static String trimLast(String text_, int n_)
文字列の最後から指定数削除します。
次の作業と同等です。単純ですが、頻度が高くかつ間違いやすいので関数化しました。
// String original; int new_len= original.length()-n; String new= new_len < 0? original.substring(0,original.length()-n):"";
text_
- 元の文字列n_
- 削除する文字数public static String trimLast(String text_, String trim_)
String text=": \t\"aaa\"\n"; String trimed= hiText.trim(text,": \t\"\n"); -gt;aaa
text_
- 元の文字列trim_
- 削除する文字(複数可)public static String space(int len_)
len_
- 長さpublic static String fill(String text_, int len_)
指定長に満たない文字列に空白を付加し指定長にした文字列を得ます。
元文字列が指定長以上の場合そのまま返します。
text_
- 元の文字列len_
- 長さhiText.fill2()
public static String fill(String text_, int len_, String fill_)
指定長に満たない文字列に指定文字を付加し指定長にした文字列を得ます。
元文字列が指定長以上の場合そのまま返します。
text_
- 元の文字列len_
- 長さfill_
- 追加する文字パターンhiText.fill2()
public static String fill(String text_, int len_, char fill_)
指定長に満たない文字列に指定文字を付加し指定長にした文字列を得ます。
元文字列が指定長以上の場合そのまま返します。
text_
- 元の文字列len_
- 長さfill_
- 追加する文字hiText.fill2()
public static String fill2(String text_, int len_)
全角のサイズを2、半角のサイズを1として、指定長に足りない場合
後ろに半角空白を埋めます。
ただし、半角全角の判断が出来ない文字を含む場合、全文字半角扱いとなります。
text_
- 元の文字列len_
- 長さ(半角長)hiText.length2()
,
hiText.fill2()
,
hiU.justSize2()
,
hiText.shortenLast2()
,
hiText.fill()
,
hiText.shortenLast()
,
hiU.justSize()
public static String fill2(String text_, int len_, char fill_)
全角のサイズを2、半角のサイズを1として、指定長に足りない場合
後ろに半角空白を埋めます。
ただし、半角全角の判断が出来ない文字を含む場合、全文字半角扱いとなります。
text_
- 元の文字列len_
- 長さ(半角長)fill_
- 埋め合わせ文字(半角)hiText.length2()
,
hiText.fill2()
,
hiU.justSize2()
,
hiText.shortenLast2()
,
hiText.fill()
,
hiText.shortenLast()
,
hiU.justSize()
public static String justSize(String text_, int len_, char fill_, String over_)
指定長に満たない文字列に指定文字を付加し指定長にした文字列を得ます。
元文字列が指定長以上の場合後ろをカットし指定長にします。
text_
- 元の文字列len_
- 長さfill_
- 追加する文字over_
- 長さが長い場合最後をこの文字列でしめす。(null指定は""と同じ)hiU.justSize2()
public static String justSize(String text_, int len_, char fill_)
指定長に満たない文字列に指定文字を付加し指定長にした文字列を得ます。
元文字列が指定長以上の場合後ろをカットし指定長にします。
text_
- 元の文字列len_
- 長さfill_
- 追加する文字hiU.justSize2()
public static String justSize2(String text_, int len_, char fill_)
指定長に満たない文字列に指定文字を付加し指定長にした文字列を得ます。
元文字列が指定長以上の場合後ろをカットし指定長にします。
半角/全角長判断はhiText.length2(str)
で行っています。
必ずしも全文字コード対応はしていません。
全角が半角とされてしまう場合hiU.SJIS_1BYTE_CODE
を変更することにより対処できる可能性があります。
text_
- 元の文字列len_
- 長さ(半角長)fill_
- 追加する文字(半角)hiText.length2()
,
hiText.fill2()
,
hiU.justSize2()
,
hiText.shortenLast2()
,
hiText.fill()
,
hiText.shortenLast()
,
hiU.justSize()
public static int length2(String text_)
次の操作と同等です。
text_=text_.replaceAll(hiU.SJIS_1BYTE_CODE
,"あ");
text_.getBytes("Shift_JIS").length;
hiU.SJIS_1BYTE_CODE
は全角であるにも関わらず1バイトにされてしまう文字(複数)です。
必ずしも全文字コード対応はしていません。
全角が半角とされてしまう場合hiU.SJIS_1BYTE_CODE
変換できない文字がある場合は単純に文字数が返ります。
text_
- 長さを知りたい文字列hiText.length2()
,
hiText.fill2()
,
hiU.justSize2()
,
hiText.shortenLast2()
public static String dbgStr(String str_, int len_)
長い文字列を1行に収まる程度に短縮します。
長い場合、中央部が...に置き換わります
前後にダブルクオートが付加されます。
\nと"と\は\でエスケープされます。
nullの場合はダブルクオートで囲まれないnullという文字列が返ります。
str_
- 文字列len_
- 内容最大長public static String dbgStr(String str_)
dbgStr(String,int)
の長さを30に固定したものです。
str_
- 文字列public static String lastPart(String text_, char dlmt_)
例えば"AB.CDE.FG"から最後の"FG"を得る事ができます。
分離記号を含まない場合全体となります。
String text = "AB.CDE.FG"; String last_part= hiText.lastPart(text,'.'); // "FG"が得られる // basePartと組み合わせ String fname = "/d1/d2/d3/test1.c"; String fname2 = fname.basePart(fname,'.') +".X."+fname.basePart(fname,'.'); // で"/d1/d2/d3/test1.X.c"がえられる
text_
- 調べる文字列dlmt_
- 分断する文字public static String lastPart(String text_, String dlmt_)
lastPart(String,char)
のdlmt_として文字列の第1文字を使うtext_
- 調べる文字列dlmt_
- 分断する文字public static String basePart(String text_, char dlmt_)
例えば"AB.CDE.FG"から最後の"AB.CDE"を得る事ができます。
分離記号を含まない場合空文字列となります。
String text = "AB.CDE.FG"; String base_part= hiText.basePart(text,'.'); // "AB.CDE"が得られる // lastPartと組み合わせ String fname = "/d1/d2/d3/test1.c"; String fname2 = fname.basePart(fname,'.') +".X."+fname.basePart(fname,'.'); // で"/d1/d2/d3/test1.X.c"がえられる
text_
- 調べる文字列dlmt_
- 分断する文字public static String basePart(String text_, String dlmt_)
basePart(String,char)
のdlmt_として文字列の第1文字を使うtext_
- 調べる文字列dlmt_
- 分断する文字