Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区 » 编程/算法/API  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:全角半角的区分 [Re:jenopob]
GlennLi





发贴: 20
积分: 2
于 2005-09-22 14:33 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我将楼主的代码修改后如下:
/*
全角和半角的区别:
全角是指中文输入法状态条中的“半月”变成“满月”的时候,此时输入的英文字符会占用两个字节,通俗地说,就是
所输入的英文字符看起来和中文字一样宽。
比如:
全角状态下:ABCDEFGHIJKLMNOPQRSTUVWXYZ
半角状态下:ABCDEFGHIJKLMNOPQRSTUVWXYZ

另外,标点符号也分中文态和英文态两种,要注意它们之间的切换。比如:
中文态下:,。;“”《》……
英文态下:,.;""<>.........
*/

public class HanZiCheck
{

  public void check(String str) {
    int length = str.length();
    int bytLength = str.getBytes().length;


    //都是半角的情况
    if(bytLength == length) {
      System.out.println("都是半角");      
    }
    
    //都是全角的情况
    else if(bytLength == 2 * length) {
      System.out.println("都是全角");    
    }


    //有全角有半角
    else {    
      System.out.println("有全角有半角");      
    }
}



  public static void main(String[] args)
  {
    HanZiCheck hzc=new HanZiCheck();


    hzc.check("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //全角
    hzc.check("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //半角



hzc.check(",.;<>........."); //半角
    hzc.check(",。;“”《》……"); //全角


    hzc.check("ABCD ABCDEF"); //全角半角混合
    hzc.check(",.《》……"); //全角半角混合

    hzc.check("我是全角字"); //全角汉字
    hzc.check("我是半角字"); //半角汉字

  }
}


运行后的结果是:
都是全角
都是半角
都是半角
都是全角
有全角有半角
有全角有半角
都是全角
都是全角

总结:对于字母和标点符号,可以用这种方法来判断是全角还是半角;对于汉字,判断是全角还是半角不能使用这种方法。


GlennLi edited on 2005-09-22 14:39


国务院第五批行政审批决定 取消BBS专项备案

话题树型展开
人气 标题 作者 字数 发贴时间
9368 全角半角的区分 jenopob 238 2005-09-19 13:14
7988 Re:全角半角的区分 jenopob 233 2005-09-20 11:35
8191 Re:全角半角的区分 zcjl 115 2005-09-20 17:50
8024 Re:全角半角的区分 GlennLi 62 2005-09-22 13:19
8398 Re:全角半角的区分 GlennLi 2120 2005-09-22 14:33
8324 Re:全角半角的区分 wzl0917 19 2005-11-07 14:49

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923