精华内容
下载资源
问答
  • lua中从字符串中提取汉字 1、utf8_to_unicode:将utf8字符转换为unicode格式的数值,用于和汉字的unicode编码比较大小 2、GetVChineseChar:遍历字符串中的每个字符,获取unicode值通过比较从字符串中提取汉字 注:...

    lua中从字符串中提取汉字


    1、utf8_to_unicode:将utf8字符转换为unicode格式的数值,用于和汉字的unicode编码比较大小
    2、GetVChineseChar:遍历字符串中的每个字符,获取unicode值通过比较从字符串中提取汉字
    注:如果是lua5.1,需要使用bitOp插件,5.2则require “bit32”, 5.3已经支持位处理功能
    如果是5.1或5.2,位操作符合&,|等需要替换为对应的band,bor等函数

    function M.GetVChineseChar(str)
        local resultChar = {}
        local i = 1
        while true do
            local curByte = string.byte(str, i)
            local byteCount = 1
            if curByte > 239 then
                byteCount = 4  -- 4字节字符
            elseif curByte > 223 then
                byteCount = 3  -- 汉字
            elseif curByte > 128 then
                byteCount = 2  -- 双字节字符
            elseif curByte == 10 then
                byteCount = 1  -- 单字节字符
            else
                byteCount = 1  -- 单字节字符
            end
    
            local subStr = string.sub(str,i, i + byteCount -1 )
            local charUnicodeNum =  Utils.utf8_to_unicode(subStr)
            --[[if  curByte == 32 or                        --空格
                (curByte > 47 and curByte < 58) or      --数字
                (curByte > 96 and curByte < 123) or     --小写字母
                (curByte > 64 and curByte < 91)        --大写字母
              ]]--
             if   charUnicodeNum >= 19968 and charUnicodeNum <= 40891 then --汉字/u4E00 -- /u9fbb
                table.insert(resultChar,subStr)
            end
            i = i + byteCount
            if i > #str then
                return table.concat(resultChar)
            end
        end
    end
    
    --将utf8字符转换为unicode编码格式对应的十进制数值
    function M.utf8_to_unicode(convertStr)
        if type(convertStr)~="string" then
            return convertStr
        end
        local resultDec= 0
        local i=1
        local num1=string.byte(convertStr,i)
        if num1 ~= nil then
            local tempVar1,tempVar2 = 0, 0
            if num1 >= 0x00 and num1 <= 0x7f then
                tempVar1=num1
                tempVar2=0
            elseif num1 & 0xe0 == 0xc0 then
                local t1 = 0
                local t2 = 0
                t1 = num1 & 0xff >> 3
                i=i+1
                num1= string.byte(convertStr,i)
                t2 =  num1 &  0xff>> 2
                tempVar1= t2 | ((t1 & (0xff >> 6)) << 6)
                tempVar2= t1 >> 2
            elseif num1 & 0xf0== 0xe0 then
                local t1 = 0
                local t2 = 0
                local t3 = 0
                t1 = num1 & (0xff >> 3)
                i=i+1
                num1= string.byte(convertStr,i)
                t2 = num1 & (0xff >> 2)
                i=i+1
                num1= string.byte(convertStr,i)
                t3 = num1 & (0xff >> 2)
                tempVar1=((t2 & (0xff >> 6)) << 6) | t3
                tempVar2=(t1 << 4) | (t2 >> 2)
            end
            resultDec =  tempVar2 * 256 + tempVar1
        end
        return resultDec
    end
    
    
    展开全文
  • mysql字符串排序

    2019-10-18 10:49:28
    mysql中对字符串排序,字符串中有数字有汉字,想按数字的大小来进行排序。仅仅用order by排序,效果不是想要的。 sql语句为: select id,dict_name,type_code from t_dictionary where type_code=‘GRADE’ ORDER ...

    mysql中对字符串排序,字符串中有数字有汉字,想按数字的大小来进行排序。仅仅用order by排序,效果不是想要的。

        sql语句为:
    

    select id,dict_name,type_code from t_dictionary where type_code=‘GRADE’ ORDER BY dict_name;

    排序效果如下:
    在这里插入图片描述
    因为字符串排序是先比较字符串第一个字符的大小。而不是像int型比较整个数字的大小。要想用字符串数据排成整型排序的效果,可以采用如下三种方式:

    select id,dict_name,type_code from t_dictionary  where type_code='GRADE' ORDER BY `dict_name`*1;
    select id,dict_name,type_code from t_dictionary  where type_code='GRADE' ORDER BY dict_name+0;
    select id,dict_name,type_code from t_dictionary  where type_code='GRADE' ORDER BY CAST(dict_name AS DECIMAL);
    

    效果图均为:

    在这里插入图片描述
    总结:

       记录下来,收获感比较强,积累成就感。
    
       若还有其他的实现方式,可以留言交流~~
    

    参考文章:

       https://www.cnblogs.com/yako/archive/2012/03/01/2375584.html 
    
       http://database.51cto.com/art/201011/235318.htm
    
    展开全文
  • Oracle,Mysql中对字符串排序,字符串中有数字有汉字,想按数字的大小来进行排序。  由于字符串排序是先比较字符串第一个字符的大小。而不是像int型比较整个数字的大小。要想用字符串数据排成整型排序的效果,可以...

    Oracle,Mysql中对字符串排序,字符串中有数字有汉字,想按数字的大小来进行排序。

          由于字符串排序是先比较字符串第一个字符的大小。而不是像int型比较整个数字的大小。要想用字符串数据排成整型排序的效果,可以采用如下三种方式:

    1.select  *  from XM where RWFLBH='fid' ORDER BY `PX`*1;  

    2.select  *  from XM where  RWFLBH='fid' ORDER BY PX+0;  

    3.select  *  from XM where RWFLBH='fid' ORDER BY CAST(PX AS DECIMAL); 

     

    如果大家对CAST(PX AS DECIMAL)函数不太懂的话:

    到这里查看详细介绍:https://blog.csdn.net/Odyssues_lee/article/details/82630568

    展开全文
  • 字符,字符串,字符编码 概念 字符是一个信息单位,在计算机里面,一个中文汉字是一个字符,一个英文字母是一个字符,一个阿拉伯数字是一个字符,一个标点符号也是一个字符。 字符集是字符组成的集合,通常以二维表...

    字符,字符串,字符编码

    概念

    1. 字符是一个信息单位,在计算机里面,一个中文汉字是一个字符,一个英文字母是一个字符,一个阿拉伯数字是一个字符,一个标点符号也是一个字符。
    2. 字符集是字符组成的集合,通常以二维表的形式存在,二维表的内容和大小是由使用者的语言而定,是英语,是汉语,还是阿拉伯语。
    3. 字符编码是把字符集中的字符编码为特定的二进制数,以便在计算机中存储。编码方式一般就是对二维表的横纵坐标进行变换的算法。一般都比较简单,直接把横纵坐标拼一起就完事了。后来随着字符集的不断扩大,为了节省存储空间,才出现了各种各样的算法。

    字符集和字符编码一般都是成对出现的,如ASCII、IOS-8859-1、GB2312、GBK,都是即表示了字符集又表示了对应的字符编码,以后统称为编码。

    一个字符有多少个字节

    • GBK编码,一个汉字占两个字节。
    • UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16)。
    • UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。

    小提示:mysql varchar(20)5.0版本后这个20代表的是20个字符。5.0版本之前是20个字节

    参考资料

    https://www.jianshu.com/p/bd7a6c508c33
    https://zh.wikipedia.org/wiki/UTF-8
    https://www.zhihu.com/question/20451870

    展开全文
  • 数字以及字符串的排序 引子 工作我们经常遇到两种排序场景. 对数字排序 对字符串排序 (对纯字母字符串排序|对纯数字字符串排序|对汉字字符串排序|对...在绝大多数语言,都提供了比较两个字符串大小的方法,比较
  • OC中文比较大小

    2016-02-19 10:14:16
    字符串汉字的时候,我们常常要进行字符串比较,但是汉字不能比较,所以就要将汉字转化成为拼音,具体过程如下: //可变字符串 必须是可变字符串.  NSMutableString *mutableString = ...
  • 我们做的项目需要匹配两张图片,比如机顶盒输出的视频,设置的菜单画面有很多汉字,并不需要认出这些汉字,通过标注...但这样找出来的矩形并不能完全覆盖汉字字符串的外部,只能在比较方正的汉字中定位到少数几个矩形框
  • 本实例使用指向指针的指针实现对字符串数组字符串排序输出,输出是按照汉字的首字母进行排序的。 2.代码 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<...
  • 昨天产品提出的一个Bug,用户姓名需要添加长度限制,但对、英文的限制要求又不一致,所以就不能只能字符串的长度去判断了。 解题思路 不管是中文还是英文字符,在编译的时候,最终都会被计算机转成二进制编码,...
  • Java自定义比较器实现中文排序

    千次阅读 2016-02-28 21:17:18
    compareTo()是两个字符串对象按ASCII比较大小汉字是Unicode),返回一个整数值,如果调用字符串对象大,返回正整数,反之,返回负整数。相等则返回0。Comparator 比较器 ### Java 内实现自定义比较器比较简单,
  • 今天遇到的一个关于字段长度校验的问题,起初作为多年从事java编程的我来说,处理字段长度还不是小事一桩么? 真的如此吗?...这样写用字符串的长度跟字符长度比较。而应采用val.getBytes().length<100这
  • 汉字按拼音排序

    2007-04-05 16:11:12
    在接口的compare(Object o1, Object o2)方法实现得到比较字符串的字节,即byte[] by1 = ((String)o1).getBytes("GBK") ; byte[] by2 = ((String)o2).getBytes("GBK") 4。依次比较by1和by2...
  • 如何获得要显示字体的大小

    千次阅读 2005-07-19 10:50:00
    首先把要显示的字符串转换到字符数组,然后根据Ascall码判断有多少个汉字,多少个字符,一般情况字符显示是汉字的一半,然后根据字体的大小,不过字体大小就是主观决定了,还好如果是宋体,9象素,我判断是12,...
  • 该 api 设计一致,string 表示要处理的汉字字符串 关键在于可选参数的配置,参数配置将在第六章单独介绍 5.2 可视化绘制汉字: draw 类型声明:cnchar.draw.d.ts cnchar-draw 库用于支持在浏览器环境下可视化绘制...
  • 1. 在MySQL,我们经常会对一个字段进行排序查询,但... 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中文编码字符大小...
  • 常用mysql排序

    2018-07-11 15:51:56
    mysql中对字符串排序,字符串中有数字有汉字,想按数字的大小来进行排序。仅仅用order by排序,效果不是想要的。因为字符串排序是先比较字符串第一个字符的大小。而不是像int型比较整个数字的大小。要想用字符串数据...
  • Python 中文排序

    千次阅读 2017-07-11 21:01:17
    最近项目需要对一些条目进行排序,这些条目都是汉字词组...基本原理假设输入为汉字字符串数组,还是按照最简单的排序原理。这里的的大小依据是就是拼音对照表的编码值和笔画对照表的编码值。先按拼音比较,如果拼音
  • Python比较字符串大小时,根据的是ord函数得到的编码值。基于它的排序函数sort可以很容易为数字和英文字母排序,因为它们在编码表就是顺序排列的。 >> print ','< '1'<'A'<'a'<'阿' True 但要很处理...
  • Python中文排序

    千次阅读 2017-07-07 20:02:30
    Python比较字符串大小时,根据的是ord函数得到的编码值。基于它的排序函数sort可以很容易为数字和英文字母排序,因为它们在编码表就是顺序排列的。>> print ','< '1'<'A'<'a'<'阿' True但要很...
  • 对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。...MAX(CAST(xxx as decimal(4,2))) 将字符串转换为decimal 对于日期时间类型的数据也可以求其最大/最小值,其大小排列...
  • TermRangeQuery是用于字符串范围查询的,既然涉及到范围必然需要字符串比较大小字符串比较大小其实比较的是ASC码值,即ASC码范围查询。一般对于英文来说,进行ASC码范围查询还有那么一点意义,中文汉字进行ASC码值...
  • 下面是总结的一些习题,以及一些算法题目,都是比较适合初学(入门)的案例,案例中都是别人范的错误,也许会遇到相同的或者类似的错误,这都是初学者的必经之路。 ... 生成随机字符串 什么是ex.
  • 每日学习总结

    2012-04-29 22:46:36
    2.字符串比较大小” “11111111112汉字” “11111111113汉字” 自然顺序认为:“11111111112汉字”要小于“11111111113汉字” 当然,如果是“1111111111112汉字1”和“11111111111112汉字2”比较,结果可能...
  • 实例263 在查询语句使用字符串函数 实例264 在查询使用日期函数 10.20 having语句应用 实例265 利用having语句过滤分组数据 实例266 having语句应用在多表查询 第11章 视图、存储过程及触发器的应用 11.1 ...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0158 如何将字符串中的任意字符转换成小写 103 0159 如何将字符串首字母大写 104 5.3 字符串的相关判断 105 0160 判断某一字符是否在字符串中 105 0161 判断字符串是由数字、大写字母或小写字母组成 105 ...
  • 0158 如何将字符串中的任意字符转换成小写 103 0159 如何将字符串首字母大写 104 5.3 字符串的相关判断 105 0160 判断某一字符是否在字符串中 105 0161 判断字符串是由数字、大写字母或小写字母组成 105 ...
  • 0158 如何将字符串中的任意字符转换成小写 103 0159 如何将字符串首字母大写 104 5.3 字符串的相关判断 105 0160 判断某一字符是否在字符串中 105 0161 判断字符串是由数字、大写字母或小写字母组成 105 ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 154
精华内容 61
关键字:

字符串中汉字比较大小