1053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/* 259aefa242169b7a51c2381daee58ff22fd1834ceJunichi Monma * Copyright (C) 2008-2012 OMRON SOFTWARE Co., Ltd. 3053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * 4053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * you may not use this file except in compliance with the License. 6053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * You may obtain a copy of the License at 7053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * 8053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * 10053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * See the License for the specific language governing permissions and 14053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * limitations under the License. 15053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 16053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 17053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectpackage jp.co.omronsoft.openwnn.JAJP; 18053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 19053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.text.DecimalFormat; 20053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.util.ArrayList; 21053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.util.HashMap; 22053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.util.List; 23053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport java.util.Locale; 24053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport jp.co.omronsoft.openwnn.WnnDictionary; 25053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectimport jp.co.omronsoft.openwnn.WnnPOS; 267b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawaimport jp.co.omronsoft.openwnn.WnnWord; 27053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 28053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project/** 293feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * The EISU-KANA converter class for Japanese IME. 30053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * 313feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * @author Copyright (C) 2009 OMRON SOFTWARE CO., LTD. All Rights Reserved. 32053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 33053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Projectpublic class KanaConverter { 34053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 35e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Conversion rule for half-width numeric */ 36e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa private static final HashMap<String,String> mHalfNumericMap = new HashMap<String,String>() {{ 37053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3042", "1"); 38053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3044", "11"); 39053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3046", "111"); 40053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3048", "1111"); 41053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304a", "11111"); 42053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3041", "111111"); 43053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3043", "1111111"); 44053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3045", "11111111"); 45053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3047", "111111111"); 46053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3049", "1111111111"); 47053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304b", "2"); 48053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304d", "22"); 49053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304f", "222"); 50053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3051", "2222"); 51053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3053", "22222"); 52053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3055", "3"); 53053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3057", "33"); 54053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3059", "333"); 55053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305b", "3333"); 56053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305d", "33333"); 57053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305f", "4"); 58053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3061", "44"); 59053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3064", "444"); 60053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3066", "4444"); 61053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3068", "44444"); 62053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3063", "444444"); 63053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306a", "5"); 64053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306b", "55"); 65053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306c", "555"); 66053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306d", "5555"); 67053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306e", "55555"); 68053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306f", "6"); 69053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3072", "66"); 70053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3075", "666"); 71053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3078", "6666"); 72053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307b", "66666"); 73053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307e", "7"); 74053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307f", "77"); 75053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3080", "777"); 76053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3081", "7777"); 77053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3082", "77777"); 78053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3084", "8"); 79053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3086", "88"); 80053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3088", "888"); 81053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3083", "8888"); 82053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3085", "88888"); 83053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3087", "888888"); 84053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3089", "9"); 85053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308a", "99"); 86053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308b", "999"); 87053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308c", "9999"); 883feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa put( "\u308d", "99999"); 89053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308f", "0"); 90053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3092", "00"); 91053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3093", "000"); 92053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308e", "0000"); 93053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30fc", "00000"); 94053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project }}; 95053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 96e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Conversion rule for full-width numeric */ 97e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa private static final HashMap<String,String> mFullNumericMap = new HashMap<String,String>() {{ 98053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3042", "\uff11"); 99053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3044", "\uff11\uff11"); 100053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3046", "\uff11\uff11\uff11"); 101053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3048", "\uff11\uff11\uff11\uff11"); 102053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304a", "\uff11\uff11\uff11\uff11\uff11"); 103053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3041", "\uff11\uff11\uff11\uff11\uff11\uff11"); 104053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3043", "\uff11\uff11\uff11\uff11\uff11\uff11\uff11"); 105053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3045", "\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11"); 106053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3047", "\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11"); 107053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3049", "\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11\uff11"); 108053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304b", "\uff12"); 109053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304d", "\uff12\uff12"); 110053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304f", "\uff12\uff12\uff12"); 111053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3051", "\uff12\uff12\uff12\uff12"); 112053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3053", "\uff12\uff12\uff12\uff12\uff12"); 113053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3055", "\uff13"); 114053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3057", "\uff13\uff13"); 1153feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa put( "\u3059", "\uff13\uff13\uff13"); 116053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305b", "\uff13\uff13\uff13\uff13"); 117053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305d", "\uff13\uff13\uff13\uff13\uff13"); 118053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305f", "\uff14"); 119053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3061", "\uff14\uff14"); 120053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3064", "\uff14\uff14\uff14"); 121053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3066", "\uff14\uff14\uff14\uff14"); 122053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3068", "\uff14\uff14\uff14\uff14\uff14"); 123053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3063", "\uff14\uff14\uff14\uff14\uff14\uff14"); 124053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306a", "\uff15"); 125053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306b", "\uff15\uff15"); 126053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306c", "\uff15\uff15\uff15"); 127053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306d", "\uff15\uff15\uff15\uff15"); 128053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306e", "\uff15\uff15\uff15\uff15\uff15"); 129053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306f", "\uff16"); 130053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3072", "\uff16\uff16"); 131053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3075", "\uff16\uff16\uff16"); 132053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3078", "\uff16\uff16\uff16\uff16"); 133053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307b", "\uff16\uff16\uff16\uff16\uff16"); 134053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307e", "\uff17"); 135053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307f", "\uff17\uff17"); 136053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3080", "\uff17\uff17\uff17"); 137053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3081", "\uff17\uff17\uff17\uff17"); 138053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3082", "\uff17\uff17\uff17\uff17\uff17"); 139053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3084", "\uff18"); 140053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3086", "\uff18\uff18"); 141053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3088", "\uff18\uff18\uff18"); 142053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3083", "\uff18\uff18\uff18\uff18"); 143053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3085", "\uff18\uff18\uff18\uff18\uff18"); 144053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3087", "\uff18\uff18\uff18\uff18\uff18\uff18"); 145053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3089", "\uff19"); 146053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308a", "\uff19\uff19"); 147053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308b", "\uff19\uff19\uff19"); 148053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308c", "\uff19\uff19\uff19\uff19"); 149053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308d", "\uff19\uff19\uff19\uff19\uff19"); 150053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308f", "\uff10"); 151053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3092", "\uff10\uff10"); 152053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3093", "\uff10\uff10\uff10"); 153053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308e", "\uff10\uff10\uff10\uff10"); 154053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30fc", "\uff10\uff10\uff10\uff10\uff10"); 155053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project }}; 156053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 157e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Conversion rule for half-width Katakana */ 158e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa private static final HashMap<String,String> mHalfKatakanaMap = new HashMap<String,String>() {{ 159053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3042", "\uff71"); 160053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3044", "\uff72"); 161053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3046", "\uff73"); 162053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3048", "\uff74"); 163053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304a", "\uff75"); 164053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3041", "\uff67"); 165053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3043", "\uff68"); 166053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3045", "\uff69"); 167053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3047", "\uff6a"); 168053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3049", "\uff6b"); 169053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4\u3041", "\uff73\uff9e\uff67"); 170053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4\u3043", "\uff73\uff9e\uff68"); 171053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4", "\uff73\uff9e"); 172053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4\u3047", "\uff73\uff9e\uff6a"); 173053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4\u3049", "\uff73\uff9e\uff6b"); 174053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304b", "\uff76"); 175053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304d", "\uff77"); 176053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304f", "\uff78"); 177053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3051", "\uff79"); 178053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3053", "\uff7a"); 179053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304c", "\uff76\uff9e"); 180053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304e", "\uff77\uff9e"); 181053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3050", "\uff78\uff9e"); 182053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3052", "\uff79\uff9e"); 183053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3054", "\uff7a\uff9e"); 184053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3055", "\uff7b"); 185053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3057", "\uff7c"); 186053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3059", "\uff7d"); 187053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305b", "\uff7e"); 188053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305d", "\uff7f"); 189053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3056", "\uff7b\uff9e"); 190053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3058", "\uff7c\uff9e"); 191053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305a", "\uff7d\uff9e"); 192053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305c", "\uff7e\uff9e"); 193053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305e", "\uff7f\uff9e"); 194053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305f", "\uff80"); 195053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3061", "\uff81"); 196053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3064", "\uff82"); 197053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3066", "\uff83"); 198053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3068", "\uff84"); 1993feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa put( "\u3063", "\uff6f"); 200053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3060", "\uff80\uff9e"); 201053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3062", "\uff81\uff9e"); 202053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3065", "\uff82\uff9e"); 203053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3067", "\uff83\uff9e"); 204053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3069", "\uff84\uff9e"); 205053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306a", "\uff85"); 206053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306b", "\uff86"); 207053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306c", "\uff87"); 208053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306d", "\uff88"); 209053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306e", "\uff89"); 210053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306f", "\uff8a"); 211053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3072", "\uff8b"); 212053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3075", "\uff8c"); 213053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3078", "\uff8d"); 214053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307b", "\uff8e"); 215053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3070", "\uff8a\uff9e"); 216053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3073", "\uff8b\uff9e"); 217053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3076", "\uff8c\uff9e"); 218053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3079", "\uff8d\uff9e"); 219053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307c", "\uff8e\uff9e"); 220053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3071", "\uff8a\uff9f"); 221053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3074", "\uff8b\uff9f"); 222053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3077", "\uff8c\uff9f"); 223053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307a", "\uff8d\uff9f"); 224053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307d", "\uff8e\uff9f"); 225053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307e", "\uff8f"); 226053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307f", "\uff90"); 227053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3080", "\uff91"); 228053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3081", "\uff92"); 229053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3082", "\uff93"); 230053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3084", "\uff94"); 231053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3086", "\uff95"); 232053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3088", "\uff96"); 233053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3083", "\uff6c"); 234053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3085", "\uff6d"); 235053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3087", "\uff6e"); 236053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3089", "\uff97"); 237053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308a", "\uff98"); 238053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308b", "\uff99"); 239053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308c", "\uff9a"); 240053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308d", "\uff9b"); 241053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308f", "\uff9c"); 242053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3092", "\uff66"); 243053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3093", "\uff9d"); 244053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308e", "\uff9c"); 245053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30fc", "\uff70"); 246053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project }}; 247053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 248e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Conversion rule for full-width Katakana */ 249e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa private static final HashMap<String,String> mFullKatakanaMap = new HashMap<String,String>() {{ 250053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3042", "\u30a2"); 251053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3044", "\u30a4"); 252053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3046", "\u30a6"); 253053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3048", "\u30a8"); 254053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304a", "\u30aa"); 255053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3041", "\u30a1"); 256053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3043", "\u30a3"); 257053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3045", "\u30a5"); 258053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3047", "\u30a7"); 259053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3049", "\u30a9"); 260053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4\u3041", "\u30f4\u30a1"); 261053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4\u3043", "\u30f4\u30a3"); 262053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4", "\u30f4"); 263053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4\u3047", "\u30f4\u30a7"); 264053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30f4\u3049", "\u30f4\u30a9"); 265053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304b", "\u30ab"); 266053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304d", "\u30ad"); 267053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304f", "\u30af"); 268053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3051", "\u30b1"); 269053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3053", "\u30b3"); 270053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304c", "\u30ac"); 271053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304e", "\u30ae"); 272053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3050", "\u30b0"); 273053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3052", "\u30b2"); 274053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3054", "\u30b4"); 275053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3055", "\u30b5"); 276053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3057", "\u30b7"); 277053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3059", "\u30b9"); 278053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305b", "\u30bb"); 279053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305d", "\u30bd"); 280053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3056", "\u30b6"); 281053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3058", "\u30b8"); 282053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305a", "\u30ba"); 283053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305c", "\u30bc"); 284053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305e", "\u30be"); 285053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305f", "\u30bf"); 286053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3061", "\u30c1"); 287053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3064", "\u30c4"); 288053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3066", "\u30c6"); 289053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3068", "\u30c8"); 290053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3063", "\u30c3"); 291053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3060", "\u30c0"); 292053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3062", "\u30c2"); 293053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3065", "\u30c5"); 294053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3067", "\u30c7"); 295053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3069", "\u30c9"); 296053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306a", "\u30ca"); 297053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306b", "\u30cb"); 298053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306c", "\u30cc"); 299053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306d", "\u30cd"); 300053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306e", "\u30ce"); 301053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306f", "\u30cf"); 302053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3072", "\u30d2"); 303053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3075", "\u30d5"); 304053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3078", "\u30d8"); 305053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307b", "\u30db"); 306053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3070", "\u30d0"); 307053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3073", "\u30d3"); 308053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3076", "\u30d6"); 309053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3079", "\u30d9"); 310053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307c", "\u30dc"); 311053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3071", "\u30d1"); 312053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3074", "\u30d4"); 313053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3077", "\u30d7"); 314053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307a", "\u30da"); 315053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307d", "\u30dd"); 316053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307e", "\u30de"); 317053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307f", "\u30df"); 318053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3080", "\u30e0"); 319053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3081", "\u30e1"); 320053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3082", "\u30e2"); 321053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3084", "\u30e4"); 322053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3086", "\u30e6"); 323053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3088", "\u30e8"); 324053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3083", "\u30e3"); 325053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3085", "\u30e5"); 326053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3087", "\u30e7"); 327053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3089", "\u30e9"); 328053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308a", "\u30ea"); 329053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308b", "\u30eb"); 330053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308c", "\u30ec"); 331053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308d", "\u30ed"); 332053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308f", "\u30ef"); 333053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3092", "\u30f2"); 334053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3093", "\u30f3"); 335053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308e", "\u30ee"); 336053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u30fc", "\u30fc"); 337053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project }}; 338053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 339e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Conversion rule for half-width alphabet */ 340e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa private static final HashMap<String,String> mHalfAlphabetMap = new HashMap<String,String>() {{ 341053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3042", "."); 342053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3044", "@"); 3433feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa put( "\u3046", "-"); 3443feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa put( "\u3048", "_"); 345053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304a", "/"); 346053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3041", ":"); 3477b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa put( "\u3043", "~"); 348053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304b", "A"); 349053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304d", "B"); 350053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304f", "C"); 351053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3055", "D"); 352053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3057", "E"); 353053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3059", "F"); 354053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305f", "G"); 355053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3061", "H"); 356053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3064", "I"); 357053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306a", "J"); 358053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306b", "K"); 359053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306c", "L"); 360053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306f", "M"); 361053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3072", "N"); 362053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3075", "O"); 363053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307e", "P"); 364053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307f", "Q"); 365053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3080", "R"); 366053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3081", "S"); 367053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3084", "T"); 368053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3086", "U"); 369053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3088", "V"); 370053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3089", "W"); 371053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308a", "X"); 372053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308b", "Y"); 373053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308c", "Z"); 3747b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa put( "\u308f", "-"); 375053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project }}; 376053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 377e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Conversion rule for full-width alphabet */ 378e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa private static final HashMap<String,String> mFullAlphabetMap = new HashMap<String,String>() {{ 379053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3042", "\uff0e"); 380053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3044", "\uff20"); 3813feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa put( "\u3046", "\u30fc"); 3823feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa put( "\u3048", "\uff3f"); 383053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304a", "\uff0f"); 384053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3041", "\uff1a"); 385053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3043", "\u301c"); 386053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304b", "\uff21"); 387053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304d", "\uff22" ); 388053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u304f", "\uff23"); 389053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3055", "\uff24" ); 390053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3057", "\uff25" ); 391053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3059", "\uff26" ); 392053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u305f", "\uff27"); 393053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3061", "\uff28" ); 394053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3064", "\uff29"); 395053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306a", "\uff2a"); 396053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306b", "\uff2b" ); 397053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306c", "\uff2c" ); 398053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u306f", "\uff2d"); 399053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3072", "\uff2e"); 400053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3075", "\uff2f"); 401053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307e", "\uff30"); 402053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u307f", "\uff31"); 403053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3080", "\uff32"); 404053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3081", "\uff33" ); 405053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3084", "\uff34" ); 406053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3086", "\uff35" ); 407053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3088", "\uff36" ); 408053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u3089", "\uff37" ); 409053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308a", "\uff38" ); 410053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308b", "\uff39"); 411053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "\u308c", "\uff3a" ); 4127b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa put( "\u308f", "\u30fc" ); 413053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project }}; 414053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 415e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Conversion rule for full-width alphabet (QWERTY mode) */ 416e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa private static final HashMap<String,String> mFullAlphabetMapQwety = new HashMap<String,String>() {{ 417053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "a", "\uff41"); 418053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "b", "\uff42"); 419053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "c", "\uff43"); 420053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "d", "\uff44"); 421053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "e", "\uff45"); 422053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "f", "\uff46"); 423053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "g", "\uff47"); 424053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "h", "\uff48"); 425053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "i", "\uff49"); 426053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "j", "\uff4a"); 427053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "k", "\uff4b"); 428053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "l", "\uff4c"); 429053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "m", "\uff4d"); 430053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "n", "\uff4e"); 431053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "o", "\uff4f"); 432053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "p", "\uff50"); 433053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "q", "\uff51"); 434053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "r", "\uff52"); 435053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "s", "\uff53"); 436053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "t", "\uff54"); 437053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "u", "\uff55"); 438053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "v", "\uff56"); 439053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "w", "\uff57"); 440053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "x", "\uff58"); 441053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "y", "\uff59"); 442053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "z", "\uff5a"); 443053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 444053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "A", "\uff21"); 445053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "B", "\uff22"); 446053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "C", "\uff23"); 447053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "D", "\uff24"); 448053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "E", "\uff25"); 449053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "F", "\uff26"); 450053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "G", "\uff27"); 451053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "H", "\uff28"); 452053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "I", "\uff29"); 453053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "J", "\uff2a"); 454053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "K", "\uff2b"); 455053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "L", "\uff2c"); 456053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "M", "\uff2d"); 457053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "N", "\uff2e"); 458053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "O", "\uff2f"); 459053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "P", "\uff30"); 460053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "Q", "\uff31"); 461053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "R", "\uff32"); 462053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "S", "\uff33"); 463053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "T", "\uff34"); 464053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "U", "\uff35"); 465053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "V", "\uff36"); 466053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "W", "\uff37"); 467053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "X", "\uff38"); 468053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "Y", "\uff39"); 469053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project put( "Z", "\uff3a"); 470053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project }}; 471053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 472e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Decimal format using comma */ 473053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project private static final DecimalFormat mFormat = new DecimalFormat("###,###"); 474053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 475e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** List of the generated candidates */ 476053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project private List<WnnWord> mAddCandidateList; 477e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa /** Work area for generating string */ 478053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project private StringBuffer mStringBuff; 479053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 480053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** part of speech (default) */ 481053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project private WnnPOS mPosDefault; 482053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** part of speech (number) */ 483053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project private WnnPOS mPosNumber; 484053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** part of speech (symbol) */ 485053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project private WnnPOS mPosSymbol; 486053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 487053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** 488053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Constructor 489053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 490053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project public KanaConverter() { 491053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project mAddCandidateList = new ArrayList<WnnWord>(); 492053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project mStringBuff = new StringBuffer(); 493053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 494053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 495053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** 496053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Set The dictionary. 497053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * <br> 4987b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa * {@link KanaConverter} gets part-of-speech tags from the dictionary. 499053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * 500053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * @param dict The dictionary 501053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 502053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project public void setDictionary(WnnDictionary dict) { 503053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /* get part of speech tags */ 504053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project mPosDefault = dict.getPOS(WnnDictionary.POS_TYPE_MEISI); 505053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project mPosNumber = dict.getPOS(WnnDictionary.POS_TYPE_SUUJI); 506053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project mPosSymbol = dict.getPOS(WnnDictionary.POS_TYPE_KIGOU); 507053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 508053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 509053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** 5103feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * Create the pseudo candidate list 511053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * <br> 5127b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa * @param inputHiragana The input string (Hiragana) 5137b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa * @param inputRomaji The input string (Romaji) 514053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * @param keyBoardMode The mode of keyboard 5153feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * @return The candidate list 516053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 5173feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa public List<WnnWord> createPseudoCandidateList(String inputHiragana, String inputRomaji, int keyBoardMode) { 518053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project List<WnnWord> list = mAddCandidateList; 519053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 520053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.clear(); 5217b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa if (inputHiragana.length() == 0) { 5227b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa return list; 5237b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa } 524053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 5253feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for all keyboard type */ 5263feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Hiragana(reading) / Full width katakana / Half width katakana */ 527053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(inputHiragana, inputHiragana)); 528e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa if (createCandidateString(inputHiragana, mFullKatakanaMap, mStringBuff)) { 529053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(mStringBuff.toString(), inputHiragana, mPosDefault)); 530053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 531e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa if (createCandidateString(inputHiragana, mHalfKatakanaMap, mStringBuff)) { 532053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(mStringBuff.toString(), inputHiragana, mPosDefault)); 533053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 5343feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa 535053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project if (keyBoardMode == OpenWnnEngineJAJP.KEYBOARD_QWERTY) { 5363feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for Qwerty keyboard */ 5373feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa createPseudoCandidateListForQwerty(inputHiragana, inputRomaji); 538053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } else { 5393feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for 12key */ 540053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 5413feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for half width numeric */ 542e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa if (createCandidateString(inputHiragana, mHalfNumericMap, mStringBuff)) { 543053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convHanSuuji = mStringBuff.toString(); 544053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convNumComma = convertNumber(convHanSuuji); 545053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convHanSuuji, inputHiragana, mPosNumber)); 546053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project if (convNumComma != null) { 547053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convNumComma, inputHiragana, mPosNumber)); 548053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 549053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 550053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 5513feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for full width numeric */ 552e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa if (createCandidateString(inputHiragana, mFullNumericMap, mStringBuff)) { 553053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(mStringBuff.toString(), inputHiragana, mPosNumber)); 554053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 555053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 5563feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for half width alphabet */ 557e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa if (createCandidateString(inputHiragana, mHalfAlphabetMap, mStringBuff)) { 558053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convHanEiji = mStringBuff.toString(); 559053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convHanEijiLower = convHanEiji.toLowerCase(); 560053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convHanEijiLower, inputHiragana, mPosSymbol)); 561053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convertCaps(convHanEijiLower), inputHiragana, mPosSymbol)); 562053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convHanEiji, inputHiragana, mPosSymbol)); 563053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 564053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 5653feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for full width alphabet */ 566e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa if (createCandidateString(inputHiragana, mFullAlphabetMap, mStringBuff)) { 567053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convZenEiji = mStringBuff.toString(); 568053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convZenEijiLower = convZenEiji.toLowerCase(Locale.JAPAN); 569053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convZenEijiLower, inputHiragana, mPosSymbol)); 570053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convertCaps(convZenEijiLower), inputHiragana, mPosSymbol)); 571053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convZenEiji, inputHiragana, mPosSymbol)); 572053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 573053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 574053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project return list; 575053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 576053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 577053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** 5783feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * Create the pseudo candidate list for Qwerty keyboard 579053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * <br> 5807b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa * @param inputHiragana The input string (Hiragana) 5817b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa * @param inputRomaji The input string (Romaji) 582053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 5833feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa private void createPseudoCandidateListForQwerty(String inputHiragana, String inputRomaji) { 584053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project List<WnnWord> list = mAddCandidateList; 585053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 5863feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for half width alphabet */ 587053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convHanEijiLower = inputRomaji.toLowerCase(); 588053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(inputRomaji, inputHiragana, mPosDefault)); 589053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convHanEijiLower, inputHiragana, mPosSymbol)); 590053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convertCaps(convHanEijiLower), inputHiragana, mPosSymbol)); 591053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(inputRomaji.toUpperCase(), inputHiragana, mPosSymbol)); 592053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 5933feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa /* Create pseudo candidates for the full width alphabet */ 594e83971e4dafd53e9fb00386355afdbae7e00c0cfDaisuke Miyakawa if (createCandidateString(inputRomaji, mFullAlphabetMapQwety, mStringBuff)) { 595053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convZenEiji = mStringBuff.toString(); 596053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String convZenEijiLower = convZenEiji.toLowerCase(Locale.JAPAN); 597053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convZenEiji, inputHiragana, mPosSymbol)); 598053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convZenEijiLower, inputHiragana, mPosSymbol)); 599053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convertCaps(convZenEijiLower), inputHiragana, mPosSymbol)); 600053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project list.add(new WnnWord(convZenEiji.toUpperCase(Locale.JAPAN), inputHiragana, mPosSymbol)); 601053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 602053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 603053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 604053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** 605053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Create the candidate string 606053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * <br> 607053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * @param input The input string 608053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * @param map The hash map 609053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * @param outBuf The output string 6107b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa * @return {@code true} if success 611053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 6127b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa private boolean createCandidateString(String input, HashMap<String,String> map, StringBuffer outBuf) { 613053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project if (outBuf.length() > 0) { 614053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project outBuf.delete(0, outBuf.length()); 615053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 616053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project for (int index = 0; index < input.length(); index++) { 6177b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa String convChar = map.get(input.substring(index, index + 1)); 618053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project if (convChar == null) { 619053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project return false; 620053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 621053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project outBuf.append(convChar); 622053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 623053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project return true; 624053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 625053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 626053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** 627053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Convert into both small and capital letter 628053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * <br> 6293feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * @param moji The input string 6303feb3d26d59be1626c59b72654020179e2b2ebe0Daisuke Miyakawa * @return The converted string 631053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 632053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project private String convertCaps(String moji) { 633053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project String tmp = ""; 634053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project if (moji != null && moji.length() > 0) { 635053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project tmp = moji.substring(0, 1).toUpperCase(Locale.JAPAN) 636053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project + moji.substring(1).toLowerCase(Locale.JAPAN); 637053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 638053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project return tmp; 639053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 640053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project 641053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project /** 642053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * Convert the numeric into formatted string 643053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * <br> 644053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project * @param numComma The value 6457b3b414976b6b3d6d85459de79e843d5ab35ed06Daisuke Miyakawa * @return {@code true} if success 646053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project */ 647053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project private String convertNumber(String numComma) { 648053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project try { 649053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project return mFormat.format(Double.parseDouble(numComma)); 650053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } catch (NumberFormatException e) { 651053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project return null; 652053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 653053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project } 654053d50935e0e311286543bd7c535ae2c863c0deThe Android Open Source Project} 655