萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

查看: 447|回复: 0

1-1-16-1-15 如何处理中文的全角和半角问题?

[复制链接]
发表于 2003-2-8 00:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
发信人: maquan ('ma:kju), 信区: Java      
标  题: Re: 如何处理中文的全角和半角问题?
发信站: BBS 水木清华站 (Tue Jul 30 12:37:05 2002)


【 在 rubost (真好) 的大作中提到: 】
: 客户输入的信息中含有中文和数字,如前门大街1号。我需要把此内容通过Socket
: 传送到另一系统中,另一个系统不能识别全角和半角混合的字符串。它可以识别全角或
: 半角的字符串。但是,不能识别混合的字符串。我需要进行转换工作。
: 可是,如何知道那个字符是半角的呢?通过ASCii码的值吗?值的范围又是什么?
: 谢谢。

下面这段程序是我以前做过的一个东西,功能不一定完善,权当是给
你这个问题提个思路吧   :)


  1. /**
  2. *  把给定的中文字符串转化为定宽字符串,若源串长则裁掉,若不足则在尾端补足。
  3. *  保证转化后的字符串只包含中文全角字符。
  4. */
  5. public static String fixedWidthStringDBCS(String str, int width, char fill) {
  6.     if (str==null) str = "";
  7.     if (fill < 256) fill = ' ';
  8.     StringBuffer sb = new StringBuffer();

  9.     int i=0;
  10.     for ( ; i<str.length() && i<width; i++) {
  11.         int c = str.charAt(i);
  12.         if (c >= 'a' && c<='z') { //azAZ 019
  13.             c = c + 'a' - 'a';
  14.         } else if (c >= 'A' && c<= 'Z') {
  15.             c = c + 'A' - 'A';
  16.         } else if (c >= '0' && c<= '9') {
  17.             c = c + '0' - '0';
  18.         } else if (c < 256) {
  19.             c = fill;
  20.         }

  21.         sb.append((char)c);
  22.     }

  23.     for ( ; i<width; i++) {
  24.         sb.append(fill);
  25.     }

  26.     return sb.toString();
  27. }
复制代码
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-6-15 01:22 , Processed in 4.224699 second(s), 17 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表