LoginSignup
2
3

More than 5 years have passed since last update.

ひらがなカタカナのみでできている単語と読み仮名を見分ける

Posted at

自動的にひらがな・カタカナが入力されたら「読み仮名」そうでなければ「単語」と認識したいと思って作っていたら、ときどき「ひらがな+カタカナ」だけで構成されている単語があることに気がつきました。(たとえば渋谷の「いかセンター」とか)

kuromojiでせっかく自動的にひらがなに統一していたのが仇になった...
でも、しかたないので「ひらがなカタカナだけが混ざっているものは単語」と認識するメソッドつくりました。もっと簡潔に書ける気がするけど^^;
メソッド名は「isIkasen」いかセンターですか?っていう直球の名前

isIkasen
     static boolean isIkasen(String motoString){
       boolean res=true;
       boolean isHira=false;
       boolean switched=false;
       char code = motoString.charAt(0);
       if(code>=0x3041 && code<=0x3096){
       //ひらがなモード
           isHira=true;
       }else{
           if(code>=0x30a1 && code<=0x30fc){
           //ひらがな以外、カタカナかそれ以外
           isHira=false;
           }else{
               return false;
           }
       }
       for(int i=1;i<motoString.length();i++){
          code = motoString.charAt(i);
          if(code>=0x3041 && code<=0x3096 ){
              if(isHira==false){
                switched=true;
              }
              continue;
          }//ひらがなでひらがなモード
          if(code>=0x30a1 && code<=0x30fc){
              if(isHira){
                  switched=true;
              }
              continue;

          }//かたかなでかたかなモード
          res=false;
          break;
       }
       //変化してtrue(全部ひらがなかたかなの時だけtrue)
       return (res && switched);
   }
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3