zoukankan      html  css  js  c++  java
  • 求字符串中汉字的个数

    一、分解字符串法

    首先创建这个函数:

     

    /*将字符串分解*/

    create function [dbo].[SplitChar]

       (

       @str_One Nvarchar(100)

       )

    returns @Result table (col nvarchar(1))

    AS

    BEGIN

       declare @number_One int

       select @number_One=1

       while @number_One<=len(@str_One)

       begin

           insert @Result select substring(@str_One,@number_One,1)

           select @number_One=@number_One+1

       end

       return

    END

    然后创建如下函数

    /*求字符串中汉字个数*/

    Create function [dbo].[ChineseCountOne]

    (

           @Str_One nvarchar(200)

    )

    RETURNS int AS

    BEGIN

           declare @number_One int

           SELECT @number_One =count(*) from dbo.SplitChar(@Str_One) where ascii(col)>127

           return @number_One

    END

     

    /*使用示例

    select dbo.[ChineseCountOne] ('China中国Beijing北京Olympics奥林匹克')

    */

     

    二、字符字节求差法

    首先创建这个函数:

    create function [dbo].[Chinesecount_Two]

    (

           @Str_One varchar(200)

    )

    RETURNS int AS

    BEGIN

           declare @number_One int

           set  @number_One=(datalength(@Str_One)-len(@Str_One))

           return @number_One

    END

     

    /*使用示例

    DECLARE @sql_one varchar(200)

    SET @sql_one='China中国Beijing北京Olympics奥林匹克'

     

    DECLARE @sql_two nvarchar(200)

    SET @sql_two='China中国Beijing北京Olympics奥林匹克'  

     

    select dbo.[Chinesecount_Two] (@sql_one) '个数one' ,

    dbo.[Chinesecount_Two] (@sql_two) '个数two'

  • 相关阅读:
    POJ
    POJ-2253 Frogger(最短路)
    背包问题(转自背包九讲+对应题目)
    POJ-1860 Currency Exchange (最短路)
    Bellman-Ford 最短路径算法
    POJ-3295 Tautology (构造)
    POJ-2586 Y2K Accounting Bug 贪心
    POJ 2965 The Pilots Brothers' refrigerator (暴力枚举)
    python(pymysql操作数据库)
    python复习概念__oop中
  • 原文地址:https://www.cnblogs.com/accumulater/p/6244667.html
Copyright © 2011-2022 走看看