文字列変換 ひらがなからローマ字への変換

文字列変換のJavaサンプルプログラム。ひらがなの文字列をローマ字に変換するサンプルプログラムを掲載しています。

Home > サンプル集 > Javaサンプル集 > ひらがなからローマ字への文字列変換


ひらがなからローマ字への文字列変換

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. ひらがな→ローマ字変換 ( HiraGana2Roma.java )  

1. ひらがな→ローマ字変換

[ サンプルプログラムのソースコード - Hiragana2Roma.java - ]
  1. import java.util.HashMap;
  2. import java.util.Map;
  3. public class Hiragana2Roma {
  4.   Map m = new HashMap();
  5.   public Hiragana2Roma() {
  6.     m.put("あ", "A");
  7.     m.put("い", "I");
  8.     m.put("う", "U");
  9.     m.put("え", "E");
  10.     m.put("お", "O");
  11.     m.put("か", "KA");
  12.     m.put("き", "KI");
  13.     m.put("く", "KU");
  14.     m.put("け", "KE");
  15.     m.put("こ", "KO");
  16.     m.put("さ", "SA");
  17.     m.put("し", "SHI");
  18.     m.put("す", "SU");
  19.     m.put("せ", "SE");
  20.     m.put("そ", "SO");
  21.     m.put("た", "TA");
  22.     m.put("ち", "CHI");
  23.     m.put("つ", "TU");
  24.     m.put("て", "TE");
  25.     m.put("と", "TO");
  26.     m.put("な", "NA");
  27.     m.put("に", "NI");
  28.     m.put("ぬ", "NU");
  29.     m.put("ね", "NE");
  30.     m.put("の", "NO");
  31.     m.put("は", "HA");
  32.     m.put("ひ", "HI");
  33.     m.put("ふ", "FU");
  34.     m.put("へ", "HE");
  35.     m.put("ほ", "HO");
  36.     m.put("ま", "MA");
  37.     m.put("み", "MI");
  38.     m.put("む", "MU");
  39.     m.put("め", "ME");
  40.     m.put("も", "MO");
  41.     m.put("や", "YA");
  42.     m.put("ゆ", "YU");
  43.     m.put("よ", "YO");
  44.     m.put("ら", "RA");
  45.     m.put("り", "RI");
  46.     m.put("る", "RU");
  47.     m.put("れ", "RE");
  48.     m.put("ろ", "RO");
  49.     m.put("わ", "WA");
  50.     m.put("を", "WO");
  51.     m.put("ん", "N");
  52.     m.put("が", "GA");
  53.     m.put("ぎ", "GI");
  54.     m.put("ぐ", "GU");
  55.     m.put("げ", "GE");
  56.     m.put("ご", "GO");
  57.     m.put("ざ", "ZA");
  58.     m.put("じ", "ZI");
  59.     m.put("ず", "ZU");
  60.     m.put("ぜ", "ZE");
  61.     m.put("ぞ", "ZO");
  62.     m.put("だ", "DA");
  63.     m.put("ぢ", "DI");
  64.     m.put("づ", "DU");
  65.     m.put("で", "DE");
  66.     m.put("ど", "DO");
  67.     m.put("ば", "BA");
  68.     m.put("び", "BI");
  69.     m.put("ぶ", "BU");
  70.     m.put("べ", "BE");
  71.     m.put("ぼ", "BO");
  72.     m.put("ぱ", "PA");
  73.     m.put("ぴ", "PI");
  74.     m.put("ぷ", "PU");
  75.     m.put("ぺ", "PE");
  76.     m.put("ぽ", "PO");
  77.     m.put("きゃ", "KYA");
  78.     m.put("きゅ", "KYU");
  79.     m.put("きょ", "KYO");
  80.     m.put("しゃ", "SYA");
  81.     m.put("しゅ", "SYU");
  82.     m.put("しょ", "SYO");
  83.     m.put("ちゃ", "TYA");
  84.     m.put("ちゅ", "TYU");
  85.     m.put("ちょ", "TYO");
  86.     m.put("にゃ", "NYA");
  87.     m.put("にゅ", "NYU");
  88.     m.put("にょ", "NYO");
  89.     m.put("ひゃ", "HYA");
  90.     m.put("ひゅ", "HYU");
  91.     m.put("ひょ", "HYO");
  92.     m.put("りゃ", "RYA");
  93.     m.put("りゅ", "RYU");
  94.     m.put("りょ", "RYO");
  95.     m.put("ぎゃ", "GYA");
  96.     m.put("ぎゅ", "GYU");
  97.     m.put("ぎょ", "GYO");
  98.     m.put("じゃ", "ZYA");
  99.     m.put("じゅ", "ZYU");
  100.     m.put("じょ", "ZYO");
  101.     m.put("ぢゃ", "DYA");
  102.     m.put("ぢゅ", "DYU");
  103.     m.put("ぢょ", "DYO");
  104.     m.put("びゃ", "BYA");
  105.     m.put("びゅ", "BYU");
  106.     m.put("びょ", "BYO");
  107.     m.put("ぴゃ", "PYA");
  108.     m.put("びゅ", "PYU");
  109.     m.put("ぴょ", "PYO");
  110.     m.put("ー", "-");
  111. }
  112.   public String kana2roma(String s) {
  113.     StringBuilder t = new StringBuilder();
  114.     for ( int i = 0; i < s.length(); i++ ) {
  115.       if ( i <= s.length() - 2 )  {
  116.         if ( m.containsKey(s.substring(i,i+2))) {
  117.           t.append(m.get(s.substring(i, i+2)));
  118.           i++;
  119.         } else if (m.containsKey(s.substring(i, i+1))) {
  120.           t.append(m.get(s.substring(i, i+1)));
  121.         } else if ( s.charAt(i) == 'っ' ) {
  122.           t.append(m.get(s.substring(i+1, i+2)).charAt(0));
  123.         } else {
  124.           t.append(s.charAt(i));
  125.         }
  126.       } else {
  127.         if (m.containsKey(s.substring(i, i+1))) {
  128.           t.append(m.get(s.substring(i, i+1)));
  129.         } else {
  130.           t.append(s.charAt(i));
  131.         }
  132.       }
  133.     }
  134.     return t.toString();
  135.   }
  136.   public static void main(String[] args) {
  137.     Hiragana2Roma k2map = new Hiragana2Roma();
  138.     String[] strs = 
  139.       {"ひょーる",
  140.        "びょーく",
  141.        "いろはにほへと",
  142.        "きゃっぷ",
  143.        "さぶっ",
  144.        "てぃーんえいじ",
  145.        "+:ぷらす",
  146.        "ははのはははばば",
  147.        "えいのいえ",
  148.        "れんたるCD店"};
  149.     int num = 1;
  150.     for (String s : strs) {
  151.       System.out.println(String.format("%1$2d", num++) + 
  152.                      " : " + s + "→" + k2map.kana2roma(s));
  153.     }
  154.     
  155.   }
  156. }
[ サンプルプログラムの実行結果 ]
1 : ひょーる→HYO-RU
2 : びょーく→BYO-KU
3 : いろはにほへと→IROHANIHOHETO
4 : きゃっぷ→KYAPPU
5 : さぶっ→SABUっ
6 : てぃーんえいじ→TEぃ-NEIZI
7 : +:ぷらす→+:PURASU
8 : ははのはははばば→HAHANOHAHAHABABA
9 : えいのいえ→EINOIE
10 : れんたるCD店→RENTARUCD店

[ サンプルプログラムの解説 ]
カタカナ→ローマ字変換(Kana2Roma.java)のサンプルからマップのキーと「ッ」のところをひらがなに変更すれば ひらがな→ローマ字変換ができます。






最終更新日:2019/02/13

2015-03-01からの訪問者数
  4904 人