做个对日的项目,如何用java判断 全角漢字、かな、カナ,请指教还有如何判断 半角英文和数字要java的代码,不要JS的

解决方案 »

  1.   

    最原始也是最实用的方法:通过字符的Unicode编码的范围进行判断    public static void main(String[] args) throws Exception {
         String s = "123ABCabc全角漢字、かな、カナ";
         for(int i = 0; i < s.length(); i++ )
         {
         char ch = s.charAt(i);
         if( ch >= '0' && ch <= '9')
         {
         System.out.println( ch + "\t是数字" );
         }
         else if( ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' )
         {
         System.out.println( ch + "\t是英文字母" );    
         }
         else if( ch >= '\u3041' && ch <= '\u30fe' ) //日文的Unicode范围
         {
         System.out.println( ch + "\t是日文" );
        
         }
         else if( ch >= '\u4E00' && ch <= '\u9FA5' ) //中文的Unicode范围
         {
         System.out.println( ch + "\t是汉字" );    
         }
         else
         {
         System.out.println( ch + "\t是其它字符");
         }
         }
        }
      

  2.   

    http://blog.oasisfeng.com/2006/10/19/full-cjk-unicode-range/也可以这样判断
    String input = "全角漢字、かな、カナ";
    System.out.println(input.matches("[\u4E00-\u9FA5]+"));范围要找准
      

  3.   

    ls的都答完了
    反正就是unicode编码了
      

  4.   

    额,经常看到
    不过都是js的
    java的话只想到用Unicode判断了
      

  5.   

    谢谢大家了啊,在网上能找到很多JS的方法,我们现在做的是java CS的结构啊,我试下
      

  6.   

    只能让用户输入 全角漢字(日文的)、かな、カナ,这个方法应该怎么写呢,用java的下规表达式吗?
      

  7.   

    他们的unicode编码编码区间不一样,
    只要知道一种编码的起始和未尾号,在这个区间内的,就可以了