[Java] 文字列から全角文字のみを除去する
文字列の中から全角文字のみを除去するメソッドを作りました。
あまり利用価値がないように思いますが、Javaはバッチ処理用途でもよく使われる言語です。
旧システムとのやり取りでは、全角文字が不可の場合がまだまだありますので、
そのような場合に全角文字を全て除去する必要があるわけです。
ご参考程度に
public class ZenkakuTest {
/**
* @param args
*/
public static void main(String[] args) {
// “新しいアサが キタ” → “アサタ”
System.out.println(removeDoubleByte(“新しいアサが キタ”));
// “新しいアサが キタ” → “***アサ***タ”
System.out.println(removeDoubleByte(“新しいアサが キタ”, “*”));
}
/**
* 全角文字を取り除く
*
* @param source 対象文字列
* @param replaceText 全角文字の場合に替わりに置き換える文字
* @return 処理後文字列
*/
public static String removeDoubleByte(String source) {
return removeDoubleByte(source, “”);
}
/**
* 全角文字を取り除く
* 全角文字は他の文字に置き換える
*
* @param source 対象文字列
* @param replaceText 全角文字の場合に替わりに置き換える文字
* @return 処理後文字列
*/
public static String removeDoubleByte(String source, String replaceText) {
String result = “”;
for (int i = 0; i < source.length(); i++) {
char c = source.charAt(i);
if (isDoubleByte(c)) {
result += replaceText;
} else {
result += String.valueOf(c);
}
}
return result;
}
/**
* 指定した文字が全角かを判定する
*
* @param source 判定対象文字
* @return trueなら全角
*/
private static Boolean isDoubleByte(char source) {
if ((source <= '\u007e') || // 英数字
(source == '\u00a5') || // \記号
(source == '\u203e') || // ~記号
(source >= ‘\uff61’ && source <= '\uff9f') // 半角カナ
) {
// 半角
return false;
} else {
// 全角
return true;
}
}
}
[/java]
== ランキングに参加しています。ぜひクリックお願いします ==
[Java] 半角カナのみかをチェックする [Java] 機種依存文字を含んでいるか