精华内容
下载资源
问答
  • 第一种方法: /**  * 特殊字符串转换  * @Class Name FullCharConverter  * @Author v-jiangwei  * @Create In 2012-8-24  */ ...* 全角半角转换函数 * @Methods Name full2HalfChange

    第一种方法:

    /**
     * 特殊字符串转换
     * @Class Name FullCharConverter
     * @Author v-jiangwei
     * @Create In 2012-8-24
     */
    public class FullCharConverter {

    /**
    * 全角转半角的 转换函数
    * @Methods Name full2HalfChange
    * @Create In 2012-8-24 By v-jiangwei
    * @param QJstr
    * @return String
    */
    public static final String full2HalfChange(String QJstr)
    {
    StringBuffer outStrBuf = new StringBuffer("");
    String Tstr = "";
    byte[] b = null;
    for (int i = 0; i < QJstr.length(); i++) {
    Tstr = QJstr.substring(i, i + 1);
    // 全角空格转换成半角空格
    if (Tstr.equals(" ")) {
    outStrBuf.append(" ");
    continue;
    }
    try {
    b = Tstr.getBytes("unicode");
    // 得到 unicode 字节数据
    if (b[2] == -1) {
    // 表示全角
    b[3] = (byte) (b[3] + 32);
    b[2] = 0;
    outStrBuf.append(new String(b, "unicode"));
    } else {
    outStrBuf.append(Tstr);
    }
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    } // end for.
    return outStrBuf.toString();


    }



    /**
    * 半角转全角
    * @Methods Name half2Fullchange
    * @Create In 2012-8-24 By v-jiangwei
    * @param QJstr
    * @return String
    */
    public static final String half2Fullchange(String QJstr)
    {
    StringBuffer outStrBuf = new StringBuffer("");
    String Tstr = "";
    byte[] b = null;
    for (int i = 0; i < QJstr.length(); i++) {
    Tstr = QJstr.substring(i, i + 1);
    if (Tstr.equals(" ")) {
    // 半角空格
    outStrBuf.append(Tstr);
    continue;
    }
    try {
    b = Tstr.getBytes("unicode");
    if (b[2] == 0) {
    // 半角
    b[3] = (byte) (b[3] - 32);
    b[2] = -1;
    outStrBuf.append(new String(b, "unicode"));
    } else {
    outStrBuf.append(Tstr);
    }
    return outStrBuf.toString();
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    return outStrBuf.toString();
    }


    /**
    * @Methods Name main
    * @Create In 2012-8-24 By v-jiangwei
    * @param args
    *            void
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String QJstr = "814乡道";
    String result = FullCharConverter.full2HalfChange(QJstr);
    System.out.println(QJstr);
    System.out.println(result);
    System.out.println("------------------------------------");
    // 半角转全角
    String str = "G45大广高速";
    System.out.println(str);
    System.out.println(FullCharConverter.half2Fullchange(str));
    }


    }

    第二种方法:

    /**
         * 半角转全角
         * @param input String.
         * @return 全角字符串.
         */
    public static String ToSBC(String input) {
             char c[] = input.toCharArray();
             for (int i = 0; i < c.length; i++) {
               if (c[i] == ' ') {
                 c[i] = '\u3000';
               } else if (c[i] < '\177') {
                 c[i] = (char) (c[i] + 65248);


               }
             }
             return new String(c);
    }
     
         /**
         * 全角转半角
         * @param input String.
         * @return 半角字符串
         */
     public static String ToDBC(String input) {
         char c[] = input.toCharArray();
              for (int i = 0; i < c.length; i++) {
                if (c[i] == '\u3000') {
                  c[i] = ' ';
                } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') {
                  c[i] = (char) (c[i] - 65248);


                }
              }
              String returnString = new String(c);
              return returnString;
     }
        public static void main(String[] args) {
        String QJstr = "G45大广高速";
    String result = StringUtil.ToDBC(QJstr);
    System.out.println(result);

    }

    展开全文
  • 半角全角转换

    2021-02-21 07:49:12
    半角转换全角后的文件2. 统计第一级汉字字频文件总结 语料 首先,任务基于以下中文GB编码的语料文件,编码问题可利用Notebook++解决。 语料摘自BCC语料库 一、半角与全角之间的转换 全角字符unicode编码从...

    给定语料文件,完成半角到全角的转换,并统计一级汉字的频次,最后按频次高到低输出。
    


    语料

    • 首先,任务基于以下中文GB编码的语料文件,编码问题可利用Notebook++解决。

    语料摘自BCC语料库


    一、半角与全角之间的转换

    全角字符unicode编码从65281 ~ 65374 (十六进制 0xFF01 ~ 0xFF5E);
    半角字符unicode编码从33 ~ 126 (十六进制 0x21~ 0x7E);
    其中,空格特殊,全角为 12288(十六进制 0x3000),半角为 32(十六进制 0x20)。

    因此,对于非空格的半角符,半角转换成全角利用“公式”:半角 + 0x7e= 全角;对空格则单独处理。
    另外,还需知道utf-8 是 unicode 字符集一种编码方式。
    关键代码如下(示例):

    for word in sentence:
    	word = word.encode("utf8")
    	if 0x21 < word[0] < 0x7e:          #半角符
    		word = word.decode("utf8")
            word = chr(ord(word)+0xfee0)
        elif word[0]==0x20:                #空格
            word = word.decode("utf8")
            word=chr(12288)
        else:
            word = word.decode("utf8")
        newfile.write(word)
    
    #写入文件操作略
    

    二、词频统计

    · 统计各一级汉字在语料库中出现的频次
    关键代码如下(示例)

    for word in sentence:
    	word = word.encode("gbk")                 
    	if 0xb0<=word[0]<=0xd7 and word[1]>=0xa1:   #第一级
    		word = word.decode("gb2312")
    		if word in mydict:
    			mydict[word]+=1                  #字频 + 1
    		else:
    			mydict[word]=1                   #字频 = 1
    		
    #写入文件操作略
    

    · 排序
    利用python中的sorted函数,结合operator.itemgetter()进行排序。具体使用方法可以到手册中查找。
    此处自主学习,不给出示例代码


    三、结果

    1. 半角转换全角后的文件

    节选:

    2. 统计第一级汉字字频文件

    节选:


    总结

    就是一篇csdn记录试写,找找感觉。
    代码一定不是最简的,文章内容如有错还望指出,谢谢~
    @author: RUNT

    展开全文
  • 原标题:使用Python转换全角字符串为半角 关于全角转换为半角的问题,其实源自在公司的运营人员在输入法切换的时候选择了全角,结果导致程序有时候没有办法进行解析。为了避免这样的问题再次出现,于是就有了将全角转换...

    原标题:使用Python转换全角字符串为半角

    关于全角转换为半角的问题,其实源自在公司的运营人员在输入法切换的时候选择了全角,结果导致程序有时候没有办法进行解析。

    为了避免这样的问题再次出现,于是就有了将全角转换为半角的问题了。

    在这里,会对以下内容进行描述:

    什么是全角如何将全角字符转换为半角使用python实现上述转换操作

    我们知道在编码中,存储在计算机中仅仅是1个数字,而编码其实充当的是1种转换的过程,如果将1个字符转换为1个数字而问题。

    全角和半角

    一般情况下,普通的英文字符只占用1个字节的空间,而1个字节有8位,因此可以存储256个字符。而汉字、日语及朝鲜文字这样CJK的文字很明显不止256个,因此会使用2个字节来存储。

    而在使用英文输入法时,我们将1个英文字符所占的位置称为半角。而由于1个汉字占用2个英文字符的位置,因为我们将其称为全角。

    需要注意的是,只有在支持汉字等语言的计算及上才存在全角和半角的概念。另外,虽然通常情况下的英文字母、数字键及符号键都是半角的,但是为了排列整齐,英文和其他拉丁文的字符和标签也可以使用全角格式。

    因此,我们知道全角需要占用2个字节,而半角则占用1个字节。

    全角转换为半角

    在ASCII编码中,我们知道可以打印的字符只有127-33=94个。在这里,我们需要去除del键及ASCII编码表中前32位。

    由于半角和全角只是占用字节个数的不同,因此全角可打印的字符也是94个。因此这2者之间是存在规律的,比如我们假设半角a字符的在计算机中存储的数字为60,而全角的a字符在计算机中存储的数字为1200。而假设a的下1个字符为b,其存储的数字为61, 那么全角的b字符存储的数字应为1201。

    因此,这种一一映射的关系就查看各种规范中是如何定义的了。不同的规范定义会有所不同。

    由于在Unicode规定中,半角字符是从33开始,到126结束。而Unicode中全角的编码是从65281开始到65374结束。

    细心的你们会发现,这里少了1个字符,那就是空格。在半角中,空格是32,而在全角中它是12288。

    python的实现转换

    现在,我们使用python来实现转换的操作,我们会检查给定的字符是否为全角,只有在全角的情况下才进行转换的操作。

    def FullToHalf(s): n = [] s = s.decode('utf-8') for char in s: num = ord(char) if num == 0x3000: num = 32 elif 0xFF01 <= num <= 0xFF5E: num -= 0xfee0 num = unichr(num) n.append(num) return ''.join(n)

    在这里,我们对字符串进行遍历,然后判断其字符的大小,如果给定的字符是全角则将其进行减法操作。最后将其组装在一起返回就可以了。

    然后我们进行如下的测试:

    s = "张三,是1个帅哥。" result = FullToHalf(s) print result print '-' * 80 print s

    其结果如下所示:

    张三,是1个帅哥。 ----------------------------------------------------------------------- 张三,是1个帅哥。

    当然,除了以上的方式外,还有其他的方式将全角转换为半角。比如我隔壁那个搞python的哥们直接就用正则进行匹配然后批量的进行转换。

    由于我比较懒和能力比较有限,只好通过上面的方式来简化我的工作量。

    【编辑推荐】

    【责任编辑:枯木TEL:(010)68476606】

    责任编辑:

    展开全文
  • PHP半角全角转换函数,第二个参数如果是0,则是半角全角;如果是1,则是全角半角function SBC_DBC($str,$args2) {$DBC = Array('0' , '1' , '2' , '3' , '4' ,'5' , '6' , '7' , '8' , '9' ,'A' , '...

    PHP半角和全角转换函数,第二个参数如果是0,则是半角到全角;如果是1,则是全角到半角

    function SBC_DBC($str,$args2) {

    $DBC = Array(

    '0' , '1' , '2' , '3' , '4' ,

    '5' , '6' , '7' , '8' , '9' ,

    'A' , 'B' , 'C' , 'D' , 'E' ,

    'F' , 'G' , 'H' , 'I' , 'J' ,

    'K' , 'L' , 'M' , 'N' , 'O' ,

    'P' , 'Q' , 'R' , 'S' , 'T' ,

    'U' , 'V' , 'W' , 'X' , 'Y' ,

    'Z' , 'a' , 'b' , 'c' , 'd' ,

    'e' , 'f' , 'g' , 'h' , 'i' ,

    'j' , 'k' , 'l' , 'm' , 'n' ,

    'o' , 'p' , 'q' , 'r' , 's' ,

    't' , 'u' , 'v' , 'w' , 'x' ,

    'y' , 'z' , '-' , ' '  , ':' ,

    '.' , ',' , '/' , '%' , '#' ,

    '!' , '@' , '&' , '(' , ')' ,

    '<' , '>' , '"' , ''' , '?' ,

    '[' , ']' , '{' , '}' , '\' ,

    '|' , '+' , '=' , '_' , '^' ,

    '¥' , ' ̄' , '`'

    );

    $SBC = Array( //半角

    '0', '1', '2', '3', '4',

    '5', '6', '7', '8', '9',

    'A', 'B', 'C', 'D', 'E',

    'F', 'G', 'H', 'I', 'J',

    'K', 'L', 'M', 'N', 'O',

    'P', 'Q', 'R', 'S', 'T',

    'U', 'V', 'W', 'X', 'Y',

    'Z', 'a', 'b', 'c', 'd',

    'e', 'f', 'g', 'h', 'i',

    'j', 'k', 'l', 'm', 'n',

    'o', 'p', 'q', 'r', 's',

    't', 'u', 'v', 'w', 'x',

    'y', 'z', '-', ' ', ':',

    '.', ',', '/', '%', '#',

    '!', '@', '&', '(', ')',

    '', '"', '\'','?',

    '[', ']', '{', '}', '\\',

    '|', '+', '=', '_', '^',

    ', '~', '`'

    );

    if($args2==0)

    return str_replace($SBC,$DBC,$str);  //半角到全角

    if($args2==1)

    return str_replace($DBC,$SBC,$str);  //全角到半角

    else

    return false;

    }

    展开全文
  • 本文章转载自:http://www.blogjava.net/action/archive/2006/06/01/49743.html...方法一:// 半角全角public static final String BQchange(String QJstr) {String outStr = "";String Tstr = "";byte[] b = n...
  • /*** 半角全角* @param input String.* @return 全角字符串.*/public static String ToSBC(String input) {char c[] = input.toCharArray();for (int i = 0; i < c.length; i++) {if (c[i] == ' ') {c[i] = '/u...
  • 前言本文将给大家展示一下如何将char进行半角全角转换,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。术语全角SBC caseSexagesimal to Binary Converter60进制转为2进制半角DBC caseDecimal ...
  • /*** 半角全角* @param input String.* @return 全角字符串.*/public static String ToSBC(String input) {char c[] = input.toCharArray();for (int i = 0; i < c.length; i++) {if (c[i] == ' ') {c[i] = '\u...
  • 本文实例讲解了Python实现全角半角转换的方法,相信对于大家的Python学习能够起到一定的参考借鉴价值。如下所示:一、全角半角转换概述:全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)半角字符...
  • #region 全角转换半角以及半角转换全角  ///转全角的函数(SBC case)  ///全角空格为12288,半角空格为32  ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248  public static ...
  • 半角全角字符的转换
  • 半角全角转换函数

    千次阅读 2016-04-21 09:42:33
    * 半角全角转换函数, * 第二个参数如果是0,则是半角全角; * 如果是1,则是全角半角 */ function SBC_DBC($str,$args2) { $DBC = Array( '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , ...
  • 下面是编程之家 jb51.cc 通过网络收集整理.../*** 半角全角* @param input String.* @return 全角字符串.*/public static String ToSBC(String input) {char c[] = input.tocharArray();for (int i = 0; i < c...
  • java全角字符转换半角 半角全角

    千次阅读 2012-05-30 10:20:15
    /// /// 判断字符是否英文半角字符或标点 /// /// /// 32 空格 /// 33-47 标点 /// 48-57 0~9 /// 58-64 标点 /// 65-90 A~Z /// 91-96 标点 /// 97-122 a~z /// 123-
  • 发布文章时WordPress会自动将代码中的单双引号转换全角符号,分享代码特别不方便,解决方法如下
  • import java.math.BigDecimal; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringUtil { ... * 半角全角 * * @param input * String. * @return 全角
  • (引自这里) 转换说明 全角半角转换说明 有规律(不含空格): 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E) 半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E) 特例: 空格比较特殊,全角为 12288...
  • SQL 半角全角之间转换 CREATE FUNCTION f_Convert( @str NVARCHAR(500), --要转换的字符串 @flag bit --转换标志,0转换半角,1转换全角 )RETURNS nvarchar(500) AS BEGIN DECLARE @pat nvarchar(8),@...
  • 最后还是换成下面的字符替换方式了,把目前能找到的所有全角都列出来了一个个替换吧/*** 全角字符转换半角** @param string $str* @return string*/public function Sbc2Dbc($str){$arr = array('0'=>...
  • java 半角全角转换

    2010-07-27 18:41:22
    [code="java"] /** * 半角全角 * * @param input String. * @return 全角字符串. */ public static String toSBC(String input) { if (input == null) { re...
  • Java 半角全角转换

    2010-06-18 12:13:00
    Java全角半角转换原理
  • C#半角,全角转换

    千次阅读 2010-05-16 14:15:00
    /**//// /// 半角全角的函数(SBC case) /// /// 任意字符串 /// 全角字符串 /// ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 /// public string ...
  • python中半角全角互相转换

    千次阅读 2015-01-09 11:01:32
    半角全角转换,代码如下: # -*- coding: cp936 -*- def strQ2B(ustring): """全角半角""" rstring = "" for uchar in ustring: inside_code=ord(uchar) if inside_code == 12288:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,297
精华内容 518
关键字:

半角转换全角