Java半角全角文字轉換

public class BigSmallString
    
    /**
     * 全角文字內容をすべて半角文字內容に変換.
     * @param string 変換対象情報を設定します.
     * @return String 変換された內容が返されます.
     */
    public static final String toSmall( String string ) {
        return toSmall( false,string ) ;
    }
    
    /**
     * 全角文字內容をすべて半角文字內容に変換.
     * @param mode [true]の場合HTML形式で変換します.
     * @param string 変換対象情報を設定します.
     * @return String 変換された內容が返されます.
     */
    public static final String toSmall( boolean mode,String string ) {
        if( string == null || string.length() <= 0 ) {
            return "" ;
        }
        StringBuilder buf = new StringBuilder() ;
        int len = string.length() ;
        for( int i = 0 ; i < len ; i ++ ) {
            buf.append( toSmallOne( mode,string.charAt( i ) ) ) ;
        }
        return buf.toString() ;
    }
    
    /**
     * カナ全角を半角変換.
     * @param string 変換対象の文字列を設定します.
     * @return String 変換された文字列が返されます.
     */
    public static final String toSmallJp( String string ) {
        if( string == null || string.length() <= 0 ) {
            return "" ;
        }
        StringBuilder buf = new StringBuilder() ;
        int len = string.length() ;
        for( int i = 0 ; i < len ; i ++ ) {
            buf.append( toSmallJpOne( string,i ) ) ;
        }
        return buf.toString() ;
    }
    
    /**
     * 全文字の半角を全角変換.
     * @param string 変換対象の文字列を設定します.
     * @return String 変換された文字列が返卻されます.
     */
    public static final String toBig( String string ) {
        string = toBigAscii( string ) ;
        return toBigJp( string ) ;
    }
    
    /**
     * カナ半角を全角変換.
     * @param string 変換対象の文字列を設定します.
     * @return String 変換された文字列が返されます.
     */
    public static final String toBigJp( String string ) {
        if( string == null || string.length() <= 0 ) {
            return "" ;
        }
        StringBuilder buf = new StringBuilder() ;
        int len = string.length() ;
        char[] o = new char[ 1 ] ;
        for( int i = 0 ; i < len ; i ++ ) {
            i += toBigJpOne( o,string,i ) ;
            buf.append( o[ 0 ] ) ;
        }
        return buf.toString() ;
    }
    
    /**
     * 英語全角文字內容をすべて半角文字內容に変換.
     * @param string 変換対象情報を設定します.
     * @return String 変換された內容が返されます.
     */
    public static final String toSmallAscii( String string ) {
        return toSmallAscii( false,string ) ;
    }
    
    /**
     * 英語全角文字內容をすべて半角文字內容に変換.
     * @param mode [true]の場合HTML形式で変換します.
     * @param string 変換対象情報を設定します.
     * @return String 変換された內容が返されます.
     */
    public static final String toSmallAscii( boolean mode,String string ) {
        if( string == null || string.length() <= 0 ) {
            return "" ;
        }
        StringBuilder buf = new StringBuilder() ;
        int len = string.length() ;
        for( int i = 0 ; i < len ; i ++ ) {
            buf.append( toSmallAsciiByOne( mode,string.charAt( i ) ) ) ;
        }
        return buf.toString() ;
    }
    
    /**
     * 英語半角を全角変換.
     * @param string 変換対象の文字列を設定します.
     * @return String 変換された文字列が返されます.
     */
    public static final String toBigAscii( String string ) {
        if( string == null || string.length() <= 0 ) {
            return "" ;
        }
        StringBuilder buf = new StringBuilder() ;
        int len = string.length() ;
        for( int i = 0 ; i < len ; i ++ ) {
            buf.append( toBigAsciiOne( string.charAt( i ) ) ) ;
        }
        return buf.toString() ;
    }
    
    /**
     * 英語のみ全角を半角に変換.
     */
    private static final String toSmallAsciiByOne( boolean mode,char code ) {
        switch( code ){
            case '!' : return "!" ;
            case '”' : return ( mode ) ? """ : "\"" ;
            case '#' : return "#" ;
            case '$' : return "$" ;
            case '¥' : return "\\" ;
            case '%' : return "%" ;
            case '&' : return "&" ;
            case '’' : return "\'" ;
            case '(' : return "(" ;
            case ')' : return ")" ;
            case '*' : return "*" ;
            case '+' : return "+" ;
            case ',' : return "," ;
            case '-' : return "-" ;
            case '.' : return "." ;
            case '/' : return "/" ;
            case '0' : return "0" ;
            case '1' : return "1" ;
            case '2' : return "2" ;
            case '3' : return "3" ;
            case '4' : return "4" ;
            case '5' : return "5" ;
            case '6' : return "6" ;
            case '7' : return "7" ;
            case '8' : return "8" ;
            case '9' : return "9" ;
            case ':' : return ":" ;
            case ';' : return ";" ;
            case '<' : return ( mode ) ? "<" : "<" ;
            case '=' : return "=" ;
            case '>' : return ( mode ) ? ">" : ">" ;
            case '?' : return "?" ;
            case '@' : return "@" ;
            case 'A' : return "A" ;
            case 'B' : return "B" ;
            case 'C' : return "C" ;
            case 'D' : return "D" ;
            case 'E' : return "E" ;
            case 'F' : return "F" ;
            case 'G' : return "G" ;
            case 'H' : return "H" ;
            case 'I' : return "I" ;
            case 'J' : return "J" ;
            case 'K' : return "K" ;
            case 'L' : return "L" ;
            case 'M' : return "M" ;
            case 'N' : return "N" ;
            case 'O' : return "O" ;
            case 'P' : return "P" ;
            case 'Q' : return "Q" ;
            case 'R' : return "R" ;
            case 'S' : return "S" ;
            case 'T' : return "T" ;
            case 'U' : return "U" ;
            case 'V' : return "V" ;
            case 'W' : return "W" ;
            case 'X' : return "X" ;
            case 'Y' : return "Y" ;
            case 'Z' : return "Z" ;
            case '^' : return "^" ;
            case '_' : return "_" ;
            case '‘' : return "`" ;
            case 'a' : return "a" ;
            case 'b' : return "b" ;
            case 'c' : return "c" ;
            case 'd' : return "d" ;
            case 'e' : return "e" ;
            case 'f' : return "f" ;
            case 'g' : return "g" ;
            case 'h' : return "h" ;
            case 'i' : return "i" ;
            case 'j' : return "j" ;
            case 'k' : return "k" ;
            case 'l' : return "l" ;
            case 'm' : return "m" ;
            case 'n' : return "n" ;
            case 'o' : return "o" ;
            case 'p' : return "p" ;
            case 'q' : return "q" ;
            case 'r' : return "r" ;
            case 's' : return "s" ;
            case 't' : return "t" ;
            case 'u' : return "u" ;
            case 'v' : return "v" ;
            case 'w' : return "w" ;
            case 'x' : return "x" ;
            case 'y' : return "y" ;
            case 'z' : return "z" ;
            case '{' : return "{" ;
            case '|' : return "|" ;
            case '}' : return "}" ;
            case '。' : return "。" ;
            case '「' : return "「" ;
            case '」' : return "」" ;
            case '、' : return "、" ;
            case '・' : return "・" ;
            case ' ' : return ( mode ) ? " " : " " ;
        }
        return new String( new char[]{ code } ) ;
    }
    
    /**
     * 英語のみ、半角を全角に変換.
     */
    private static final String toBigAsciiOne( char code ) {
        switch( code ){
            case '!'   : return  "!" ;
            case '\"'  : return  "”" ;
            case '#'   : return  "#" ;
            case '$'   : return  "$" ;
            case '\\'  : return  "¥" ;
            case '%'   : return  "%" ;
            case '&'   : return  "&" ;
            case '\''  : return  "’" ;
            case '('   : return  "(" ;
            case ')'   : return  ")" ;
            case '*'   : return  "*" ;
            case '+'   : return  "+" ;
            case ','   : return  "," ;
            case '-'   : return  "-" ;
            case '.'   : return  "." ;
            case '/'   : return  "/" ;
            case '0'   : return  "0" ;
            case '1'   : return  "1" ;
            case '2'   : return  "2" ;
            case '3'   : return  "3" ;
            case '4'   : return  "4" ;
            case '5'   : return  "5" ;
            case '6'   : return  "6" ;
            case '7'   : return  "7" ;
            case '8'   : return  "8" ;
            case '9'   : return  "9" ;
            case ':'   : return  ":" ;
            case ';'   : return  ";" ;
            case '<'   : return  "<" ;
            case '='   : return  "=" ;
            case '>'   : return  ">" ;
            case '?'   : return  "?" ;
            case '@'   : return  "@" ;
            case 'A'   : return  "A" ;
            case 'B'   : return  "B" ;
            case 'C'   : return  "C" ;
            case 'D'   : return  "D" ;
            case 'E'   : return  "E" ;
            case 'F'   : return  "F" ;
            case 'G'   : return  "G" ;
            case 'H'   : return  "H" ;
            case 'I'   : return  "I" ;
            case 'J'   : return  "J" ;
            case 'K'   : return  "K" ;
            case 'L'   : return  "L" ;
            case 'M'   : return  "M" ;
            case 'N'   : return  "N" ;
            case 'O'   : return  "O" ;
            case 'P'   : return  "P" ;
            case 'Q'   : return  "Q" ;
            case 'R'   : return  "R" ;
            case 'S'   : return  "S" ;
            case 'T'   : return  "T" ;
            case 'U'   : return  "U" ;
            case 'V'   : return  "V" ;
            case 'W'   : return  "W" ;
            case 'X'   : return  "X" ;
            case 'Y'   : return  "Y" ;
            case 'Z'   : return  "Z" ;
            case '^'   : return  "^" ;
            case '_'   : return  "_" ;
            case '`'   : return  "‘" ;
            case 'a'   : return  "a" ;
            case 'b'   : return  "b" ;
            case 'c'   : return  "c" ;
            case 'd'   : return  "d" ;
            case 'e'   : return  "e" ;
            case 'f'   : return  "f" ;
            case 'g'   : return  "g" ;
            case 'h'   : return  "h" ;
            case 'i'   : return  "i" ;
            case 'j'   : return  "j" ;
            case 'k'   : return  "k" ;
            case 'l'   : return  "l" ;
            case 'm'   : return  "m" ;
            case 'n'   : return  "n" ;
            case 'o'   : return  "o" ;
            case 'p'   : return  "p" ;
            case 'q'   : return  "q" ;
            case 'r'   : return  "r" ;
            case 's'   : return  "s" ;
            case 't'   : return  "t" ;
            case 'u'   : return  "u" ;
            case 'v'   : return  "v" ;
            case 'w'   : return  "w" ;
            case 'x'   : return  "x" ;
            case 'y'   : return  "y" ;
            case 'z'   : return  "z" ;
            case '{'   : return  "{" ;
            case '|'   : return  "|" ;
            case '}'   : return  "}" ;
            case '。'   : return  "。" ;
            case '「'   : return  "「" ;
            case '」'   : return  "」" ;
            case '、'   : return  "、" ;
            case '・'   : return  "・" ;
            case ' '   : return  " " ;
        }
        return new String( new char[]{ code } ) ;
    }
    
    
    /**
     * 全角文字を半角文字に変更.
     */
    private static final String toSmallOne( boolean mode,char code ) {
        switch( code ){
            case 'ァ' : return "ァ" ;
            case 'ィ' : return "ィ" ;
            case 'ゥ' : return "ゥ" ;
            case 'ェ' : return "ェ" ;
            case 'ォ' : return "ォ" ;
            case 'ャ' : return "ャ" ;
            case 'ュ' : return "ュ" ;
            case 'ョ' : return "ョ" ;
            case 'ッ' : return "ッ" ;
            case 'ー' : return "ー" ;
            case 'ア' : return "ア" ;
            case 'イ' : return "イ" ;
            case 'ウ' : return "ウ" ;
            case 'エ' : return "エ" ;
            case 'オ' : return "オ" ;
            case 'カ' : return "カ" ;
            case 'キ' : return "キ" ;
            case 'ク' : return "ク" ;
            case 'ケ' : return "ケ" ;
            case 'コ' : return "コ" ;
            case 'サ' : return "サ" ;
            case 'シ' : return "シ" ;
            case 'ス' : return "ス" ;
            case 'セ' : return "セ" ;
            case 'ソ' : return "ソ" ;
            case 'タ' : return "タ" ;
            case 'チ' : return "チ" ;
            case 'ツ' : return "ツ" ;
            case 'テ' : return "テ" ;
            case 'ト' : return "ト" ;
            case 'ナ' : return "ナ" ;
            case 'ニ' : return "ニ" ;
            case 'ヌ' : return "ヌ" ;
            case 'ネ' : return "ネ" ;
            case 'ノ' : return "ノ" ;
            case 'ハ' : return "ハ" ;
            case 'ヒ' : return "ヒ" ;
            case 'フ' : return "フ" ;
            case 'ヘ' : return "ヘ" ;
            case 'ホ' : return "ホ" ;
            case 'マ' : return "マ" ;
            case 'ミ' : return "ミ" ;
            case 'ム' : return "ム" ;
            case 'メ' : return "メ" ;
            case 'モ' : return "モ" ;
            case 'ヤ' : return "ヤ" ;
            case 'ユ' : return "ユ" ;
            case 'ヨ' : return "ヨ" ;
            case 'ラ' : return "ラ" ;
            case 'リ' : return "リ" ;
            case 'ル' : return "ル" ;
            case 'レ' : return "レ" ;
            case 'ロ' : return "ロ" ;
            case 'ワ' : return "ワ" ;
            case 'ヲ' : return "ヲ" ;
            case 'ン' : return "ン" ;
            case 'ガ' : return "ガ" ;
            case 'ギ' : return "ギ" ;
            case 'グ' : return "グ" ;
            case 'ゲ' : return "ゲ" ;
            case 'ゴ' : return "ゴ" ;
            case 'ザ' : return "ザ" ;
            case 'ジ' : return "ジ" ;
            case 'ズ' : return "ズ" ;
            case 'ゼ' : return "ゼ" ;
            case 'ゾ' : return "ゾ" ;
            case 'ダ' : return "ダ" ;
            case 'ヂ' : return "ヂ" ;
            case 'ヅ' : return "ヅ" ;
            case 'デ' : return "デ" ;
            case 'ド' : return "ド" ;
            case 'パ' : return "パ" ;
            case 'ピ' : return "ピ" ;
            case 'プ' : return "プ" ;
            case 'ペ' : return "ペ" ;
            case 'ポ' : return "ポ" ;
            case 'バ' : return "バ" ;
            case 'ビ' : return "ビ" ;
            case 'ブ' : return "ブ" ;
            case 'ベ' : return "ベ" ;
            case 'ボ' : return "ボ" ;
            case 'ヴ' : return "ヴ" ;
            case '!' : return "!" ;
            case '”' : return ( mode ) ? """ : "\"" ;
            case '#' : return "#" ;
            case '$' : return "$" ;
            case '¥' : return "\\" ;
            case '%' : return "%" ;
            case '&' : return "&" ;
            case '’' : return "\'" ;
            case '(' : return "(" ;
            case ')' : return ")" ;
            case '*' : return "*" ;
            case '+' : return "+" ;
            case ',' : return "," ;
            case '-' : return "-" ;
            case '.' : return "." ;
            case '/' : return "/" ;
            case '0' : return "0" ;
            case '1' : return "1" ;
            case '2' : return "2" ;
            case '3' : return "3" ;
            case '4' : return "4" ;
            case '5' : return "5" ;
            case '6' : return "6" ;
            case '7' : return "7" ;
            case '8' : return "8" ;
            case '9' : return "9" ;
            case ':' : return ":" ;
            case ';' : return ";" ;
            case '<' : return ( mode ) ? "<" : "<" ;
            case '=' : return "=" ;
            case '>' : return ( mode ) ? ">" : ">" ;
            case '?' : return "?" ;
            case '@' : return "@" ;
            case 'A' : return "A" ;
            case 'B' : return "B" ;
            case 'C' : return "C" ;
            case 'D' : return "D" ;
            case 'E' : return "E" ;
            case 'F' : return "F" ;
            case 'G' : return "G" ;
            case 'H' : return "H" ;
            case 'I' : return "I" ;
            case 'J' : return "J" ;
            case 'K' : return "K" ;
            case 'L' : return "L" ;
            case 'M' : return "M" ;
            case 'N' : return "N" ;
            case 'O' : return "O" ;
            case 'P' : return "P" ;
            case 'Q' : return "Q" ;
            case 'R' : return "R" ;
            case 'S' : return "S" ;
            case 'T' : return "T" ;
            case 'U' : return "U" ;
            case 'V' : return "V" ;
            case 'W' : return "W" ;
            case 'X' : return "X" ;
            case 'Y' : return "Y" ;
            case 'Z' : return "Z" ;
            case '^' : return "^" ;
            case '_' : return "_" ;
            case '‘' : return "`" ;
            case 'a' : return "a" ;
            case 'b' : return "b" ;
            case 'c' : return "c" ;
            case 'd' : return "d" ;
            case 'e' : return "e" ;
            case 'f' : return "f" ;
            case 'g' : return "g" ;
            case 'h' : return "h" ;
            case 'i' : return "i" ;
            case 'j' : return "j" ;
            case 'k' : return "k" ;
            case 'l' : return "l" ;
            case 'm' : return "m" ;
            case 'n' : return "n" ;
            case 'o' : return "o" ;
            case 'p' : return "p" ;
            case 'q' : return "q" ;
            case 'r' : return "r" ;
            case 's' : return "s" ;
            case 't' : return "t" ;
            case 'u' : return "u" ;
            case 'v' : return "v" ;
            case 'w' : return "w" ;
            case 'x' : return "x" ;
            case 'y' : return "y" ;
            case 'z' : return "z" ;
            case '{' : return "{" ;
            case '|' : return "|" ;
            case '}' : return "}" ;
            case '。' : return "。" ;
            case '「' : return "「" ;
            case '」' : return "」" ;
            case '、' : return "、" ;
            case '・' : return "・" ;
            case ' ' : return ( mode ) ? " " : " " ;
        }
        return new String( new char[]{ code } ) ;
    }
    
    /**
     * (カナ)全角から半角変換
     */
    private static final String toSmallJpOne( String str,int index ) {
        char code = str.charAt( index ) ;
        switch( code ) {
            case 'ァ' : return "ァ" ;
            case 'ィ' : return "ィ" ;
            case 'ゥ' : return "ゥ" ;
            case 'ェ' : return "ェ" ;
            case 'ォ' : return "ォ" ;
            case 'ャ' : return "ャ" ;
            case 'ュ' : return "ュ" ;
            case 'ョ' : return "ョ" ;
            case 'ッ' : return "ッ" ;
            case 'ー' : return "ー" ;
            case 'ア' : return "ア" ;
            case 'イ' : return "イ" ;
            case 'ウ' : return "ウ" ;
            case 'エ' : return "エ" ;
            case 'オ' : return "オ" ;
            case 'カ' : return "カ" ;
            case 'キ' : return "キ" ;
            case 'ク' : return "ク" ;
            case 'ケ' : return "ケ" ;
            case 'コ' : return "コ" ;
            case 'サ' : return "サ" ;
            case 'シ' : return "シ" ;
            case 'ス' : return "ス" ;
            case 'セ' : return "セ" ;
            case 'ソ' : return "ソ" ;
            case 'タ' : return "タ" ;
            case 'チ' : return "チ" ;
            case 'ツ' : return "ツ" ;
            case 'テ' : return "テ" ;
            case 'ト' : return "ト" ;
            case 'ナ' : return "ナ" ;
            case 'ニ' : return "ニ" ;
            case 'ヌ' : return "ヌ" ;
            case 'ネ' : return "ネ" ;
            case 'ノ' : return "ノ" ;
            case 'ハ' : return "ハ" ;
            case 'ヒ' : return "ヒ" ;
            case 'フ' : return "フ" ;
            case 'ヘ' : return "ヘ" ;
            case 'ホ' : return "ホ" ;
            case 'マ' : return "マ" ;
            case 'ミ' : return "ミ" ;
            case 'ム' : return "ム" ;
            case 'メ' : return "メ" ;
            case 'モ' : return "モ" ;
            case 'ヤ' : return "ヤ" ;
            case 'ユ' : return "ユ" ;
            case 'ヨ' : return "ヨ" ;
            case 'ラ' : return "ラ" ;
            case 'リ' : return "リ" ;
            case 'ル' : return "ル" ;
            case 'レ' : return "レ" ;
            case 'ロ' : return "ロ" ;
            case 'ワ' : return "ワ" ;
            case 'ヲ' : return "ヲ" ;
            case 'ン' : return "ン" ;
            case 'ガ' : return "ガ" ;
            case 'ギ' : return "ギ" ;
            case 'グ' : return "グ" ;
            case 'ゲ' : return "ゲ" ;
            case 'ゴ' : return "ゴ" ;
            case 'ザ' : return "ザ" ;
            case 'ジ' : return "ジ" ;
            case 'ズ' : return "ズ" ;
            case 'ゼ' : return "ゼ" ;
            case 'ゾ' : return "ゾ" ;
            case 'ダ' : return "ダ" ;
            case 'ヂ' : return "ヂ" ;
            case 'ヅ' : return "ヅ" ;
            case 'デ' : return "デ" ;
            case 'ド' : return "ド" ;
            case 'パ' : return "パ" ;
            case 'ピ' : return "ピ" ;
            case 'プ' : return "プ" ;
            case 'ペ' : return "ペ" ;
            case 'ポ' : return "ポ" ;
            case 'バ' : return "バ" ;
            case 'ビ' : return "ビ" ;
            case 'ブ' : return "ブ" ;
            case 'ベ' : return "ベ" ;
            case 'ボ' : return "ボ" ;
            case 'ヴ' : return "ヴ" ;
        }
        return str.substring( index,index+1 ) ;
    }
    
    /**
     * (カナ)半角から全角変換.
     */
    private static final int toBigJpOne( char[] out,String str,int index ) {
        char code = str.charAt( index ) ;
        if( index + 1 >= str.length() ){
            switch( code ) {
                case 'ァ' : out[0] = 'ァ' ;return 0;
                case 'ィ' : out[0] = 'ィ' ;return 0;
                case 'ゥ' : out[0] = 'ゥ' ;return 0;
                case 'ェ' : out[0] = 'ェ' ;return 0;
                case 'ォ' : out[0] = 'ォ' ;return 0;
                case 'ャ' : out[0] = 'ャ' ;return 0;
                case 'ュ' : out[0] = 'ュ' ;return 0;
                case 'ョ' : out[0] = 'ョ' ;return 0;
                case 'ッ' : out[0] = 'ッ' ;return 0;
                case 'ー' : out[0] = 'ー' ;return 0;
                case 'ア' : out[0] = 'ア' ;return 0;
                case 'イ' : out[0] = 'イ' ;return 0;
                case 'ウ' : out[0] = 'ウ' ;return 0;
                case 'エ' : out[0] = 'エ' ;return 0;
                case 'オ' : out[0] = 'オ' ;return 0;
                case 'カ' : out[0] = 'カ' ;return 0;
                case 'キ' : out[0] = 'キ' ;return 0;
                case 'ク' : out[0] = 'ク' ;return 0;
                case 'ケ' : out[0] = 'ケ' ;return 0;
                case 'コ' : out[0] = 'コ' ;return 0;
                case 'サ' : out[0] = 'サ' ;return 0;
                case 'シ' : out[0] = 'シ' ;return 0;
                case 'ス' : out[0] = 'ス' ;return 0;
                case 'セ' : out[0] = 'セ' ;return 0;
                case 'ソ' : out[0] = 'ソ' ;return 0;
                case 'タ' : out[0] = 'タ' ;return 0;
                case 'チ' : out[0] = 'チ' ;return 0;
                case 'ツ' : out[0] = 'ツ' ;return 0;
                case 'テ' : out[0] = 'テ' ;return 0;
                case 'ト' : out[0] = 'ト' ;return 0;
                case 'ナ' : out[0] = 'ナ' ;return 0;
                case 'ニ' : out[0] = 'ニ' ;return 0;
                case 'ヌ' : out[0] = 'ヌ' ;return 0;
                case 'ネ' : out[0] = 'ネ' ;return 0;
                case 'ノ' : out[0] = 'ノ' ;return 0;
                case 'ハ' : out[0] = 'ハ' ;return 0;
                case 'ヒ' : out[0] = 'ヒ' ;return 0;
                case 'フ' : out[0] = 'フ' ;return 0;
                case 'ヘ' : out[0] = 'ヘ' ;return 0;
                case 'ホ' : out[0] = 'ホ' ;return 0;
                case 'マ' : out[0] = 'マ' ;return 0;
                case 'ミ' : out[0] = 'ミ' ;return 0;
                case 'ム' : out[0] = 'ム' ;return 0;
                case 'メ' : out[0] = 'メ' ;return 0;
                case 'モ' : out[0] = 'モ' ;return 0;
                case 'ヤ' : out[0] = 'ヤ' ;return 0;
                case 'ユ' : out[0] = 'ユ' ;return 0;
                case 'ヨ' : out[0] = 'ヨ' ;return 0;
                case 'ラ' : out[0] = 'ラ' ;return 0;
                case 'リ' : out[0] = 'リ' ;return 0;
                case 'ル' : out[0] = 'ル' ;return 0;
                case 'レ' : out[0] = 'レ' ;return 0;
                case 'ロ' : out[0] = 'ロ' ;return 0;
                case 'ワ' : out[0] = 'ワ' ;return 0;
                case 'ヲ' : out[0] = 'ヲ' ;return 0;
                case 'ン' : out[0] = 'ン' ;return 0;
                case '゙' : out[0] = '゙' ;return 0;
                case '゚' : out[0] = '゚' ;return 0;
            }
            out[0] = code ;
            return 0 ;
        }
        else {
            int type = 0 ;
            char code2 = str.charAt( index+1 ) ;
            if( code2 == '゙' ){
                type = 1 ;
            }
            else if( code2 == '゚' ){
                type = 2 ;
            }
            switch( code ) {
                case 'ァ' : out[0] = 'ァ' ;return 0;
                case 'ィ' : out[0] = 'ィ' ;return 0;
                case 'ゥ' : out[0] = 'ゥ' ;return 0;
                case 'ェ' : out[0] = 'ェ' ;return 0;
                case 'ォ' : out[0] = 'ォ' ;return 0;
                case 'ャ' : out[0] = 'ャ' ;return 0;
                case 'ュ' : out[0] = 'ュ' ;return 0;
                case 'ョ' : out[0] = 'ョ' ;return 0;
                case 'ッ' : out[0] = 'ッ' ;return 0;
                case 'ー' : out[0] = 'ー' ;return 0;
                case 'ア' : out[0] = 'ア' ;return 0;
                case 'イ' : out[0] = 'イ' ;return 0;
                case 'ウ' :
                    if( type == 1 ) {
                        out[0] = 'ヴ' ;return 1 ;
                    }
                    else{
                        out[0] = 'ウ' ;return 0;
                    }
                case 'エ' : out[0] = 'エ' ;return 0;
                case 'オ' : out[0] = 'オ' ;return 0;
                case 'カ' :
                    if( type == 1 ) {
                        out[0] = 'ガ' ;return 1 ;
                    }
                    else{
                        out[0] = 'カ' ;return 0;
                    }
                case 'キ' :
                    if( type == 1 ) {
                        out[0] = 'ギ' ;return 1 ;
                    }
                    else {
                        out[0] = 'キ' ;return 0;
                    }
                case 'ク' :
                    if( type == 1 ) {
                        out[0] = 'グ' ;return 1 ;
                    }
                    else {
                        out[0] = 'ク' ;return 0;
                    }
                    
                case 'ケ' :
                    if( type == 1 ) {
                        out[0] = 'ゲ' ;return 1 ;
                    }
                    else {
                        out[0] = 'ケ' ;return 0;
                    }
                case 'コ' :
                    if( type == 1 ) {
                        out[0] = 'ゴ' ;return 1 ;
                    }
                    else {
                        out[0] = 'コ' ;return 0;
                    }
                case 'サ' :
                    if( type == 1 ) {
                        out[0] = 'ザ' ;return 1 ;
                    }
                    else{
                        out[0] = 'サ' ;return 0;
                    }
                case 'シ' :
                    if( type == 1 ) {
                        out[0] = 'ジ' ;return 1 ;
                    }
                    else{
                        out[0] = 'シ' ;return 0;
                    }
                case 'ス' :
                    if( type == 1 ) {
                        out[0] = 'ズ' ;return 1 ;
                    }
                    else{
                        out[0] = 'ス' ;return 0;
                    }
                case 'セ' :
                    if( type == 1 ) {
                        out[0] = 'ゼ' ;return 1 ;
                    }
                    else{
                        out[0] = 'セ' ;return 0;
                    }
                case 'ソ' :
                    if( type == 1 ) {
                        out[0] = 'ゾ' ;return 1 ;
                    }
                    else{
                        out[0] = 'ソ' ;return 0;
                    }
                case 'タ' :
                    if( type == 1 ) {
                        out[0] = 'ダ' ;return 1 ;
                    }
                    else{
                        out[0] = 'タ' ;return 0;
                    }
                case 'チ' :
                    if( type == 1 ) {
                        out[0] = 'ヂ' ;return 1 ;
                    }
                    else{
                        out[0] = 'チ' ;return 0;
                    }
                case 'ツ' :
                    if( type == 1 ) {
                        out[0] = 'ヅ' ;return 1 ;
                    }
                    else{
                        out[0] = 'ツ' ;return 0;
                    }
                case 'テ' :
                    if( type == 1 ) {
                        out[0] = 'デ' ;return 1 ;
                    }
                    else{
                        out[0] = 'テ' ;return 0;
                    }
                case 'ト' :
                    if( type == 1 ) {
                        out[0] = 'ド' ;return 1 ;
                    }
                    else{
                        out[0] = 'ト' ;return 0;
                    }
                case 'ナ' : out[0] = 'ナ' ;return 0;
                case 'ニ' : out[0] = 'ニ' ;return 0;
                case 'ヌ' : out[0] = 'ヌ' ;return 0;
                case 'ネ' : out[0] = 'ネ' ;return 0;
                case 'ノ' : out[0] = 'ノ' ;return 0;
                case 'ハ' :
                    if( type == 1 ) {
                        out[0] = 'バ' ;return 1 ;
                    }
                    else if( type == 2 ) {
                        out[0] = 'パ' ;return 1 ;
                    }
                    else{
                        out[0] = 'ハ' ;return 0;
                    }
                case 'ヒ' :
                    if( type == 1 ) {
                        out[0] = 'ビ' ;return 1 ;
                    }
                    else if( type == 2 ) {
                        out[0] = 'ピ' ;return 1 ;
                    }
                    else{
                        out[0] = 'ヒ' ;return 0;
                    }
                case 'フ' :
                    if( type == 1 ) {
                        out[0] = 'ブ' ;return 1 ;
                    }
                    else if( type == 2 ) {
                        out[0] = 'プ' ;return 1 ;
                    }
                    else{
                        out[0] = 'フ' ;return 0;
                    }
                case 'ヘ' :
                    if( type == 1 ) {
                        out[0] = 'ベ' ;return 1 ;
                    }
                    else if( type == 2 ) {
                        out[0] = 'ペ' ;return 1 ;
                    }
                    else{
                        out[0] = 'ヘ' ;return 0;
                    }
                case 'ホ' :
                    if( type == 1 ) {
                        out[0] = 'ボ' ;return 1 ;
                    }
                    else if( type == 2 ) {
                        out[0] = 'ポ' ;return 1 ;
                    }
                    else{
                        out[0] = 'ホ' ;return 0;
                    }
                case 'マ' : out[0] = 'マ' ;return 0;
                case 'ミ' : out[0] = 'ミ' ;return 0;
                case 'ム' : out[0] = 'ム' ;return 0;
                case 'メ' : out[0] = 'メ' ;return 0;
                case 'モ' : out[0] = 'モ' ;return 0;
                case 'ヤ' : out[0] = 'ヤ' ;return 0;
                case 'ユ' : out[0] = 'ユ' ;return 0;
                case 'ヨ' : out[0] = 'ヨ' ;return 0;
                case 'ラ' : out[0] = 'ラ' ;return 0;
                case 'リ' : out[0] = 'リ' ;return 0;
                case 'ル' : out[0] = 'ル' ;return 0;
                case 'レ' : out[0] = 'レ' ;return 0;
                case 'ロ' : out[0] = 'ロ' ;return 0;
                case 'ワ' : out[0] = 'ワ' ;return 0;
                case 'ヲ' : out[0] = 'ヲ' ;return 0;
                case 'ン' : out[0] = 'ン' ;return 0;
                case '゙' : out[0] = '゙' ;return 0;
                case '゚' : out[0] = '゚' ;return 0;
            }
        }
        out[0] = code ;
        return 0 ;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章