プログラマーを職業としてます。 Flex,Air,C#,Oracle,PHPの言語ノウハウを中心に情報発信していきます


[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]

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です