亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

我將此方法移植到VB.NET上了,請看源碼(二)

2024-07-10 13:12:58
字體:
來源:轉載
供稿:網友
#region "由拼音到拼音"
    public shared function getpytopy(byval pystr as string, _
                                     optional byval iscomp as boolean = false) as string
        if pystr.length = 0 then exit function

        miscompelled = iscomp

        dim tonesite as integer
        dim tonevalue as integer
        dim tonechar as char

        tonesite = gettonesite(pystr)
        if tonesite = -1 then
            return pystr
        elseif tonesite < -1 then
            exit function
        end if

        tonevalue = gettonevalue(pystr, tonesite)
        if tonevalue = -1 then exit function

        if miscompelled then
            tonechar = gettonechar(pystr, tonesite - 1)
        else
            tonechar = gettonechar(pystr)
        end if
        if not ispychar(tonechar) then exit function
        return conversion(pystr, tonesite, tonevalue, tonechar)

    end function
    '返回標明聲調數值的位置
    private shared function gettonesite(byval pystr as string) as integer
        if pystr.length = 0 then exit function
        dim i as integer, j as integer = 0
        '檢查字串中有幾個數字
        for i = 0 to pystr.length - 1
            if char.isnumber(pystr.chars(i)) then
                j += 1
            end if
        next
        if j = 0 then       '沒有數字,即沒有標明聲調的數值
            return -1
        elseif j = 1 then   '有一個數字,合法
            for i = 0 to pystr.length - 1
                if char.isnumber(pystr.chars(i)) then
                    return i
                end if
            next
        else                '有多個數字,不合法,返回其相反數
            return -j
        end if
    end function
    '返回聲調是幾聲
    private shared function gettonevalue(byval pystr as string, _
                                         byval site as integer) as integer
        if pystr.length = 0 then exit function
        if site >= 0 then
            dim value as char = pystr.chars(site)
            dim num as integer
            if char.isnumber(value) then
                num = ctype(value.tostring, integer)
                if num >= 0 and num <= 4 then
                    return num
                else
                    return -1
                end if
            else
                return -1
            end if
        end if
    end function
    '返回要標聲調的字母
    private shared function gettonechar(byval pystr as string, _
                                     byval site as integer) as char
        if pystr.length = 0 then exit function
        if site >= 0 then
            dim value as char = pystr.chars(site)
            return value
        end if
    end function
    private shared function gettonechar(byval pystr as string) as char
        if pystr.length = 0 then exit function
        dim chr as char

        if pystr.indexof(a(0)) >= 0 then
            chr = pystr.chars(pystr.indexof(a(0)))
        elseif pystr.indexof(o(0)) >= 0 then
            chr = pystr.chars(pystr.indexof(o(0)))
        elseif pystr.indexof(e(0)) >= 0 then
            chr = pystr.chars(pystr.indexof(e(0)))
        elseif pystr.indexof(i(0)) >= 0 then
            chr = pystr.chars(pystr.indexof(i(0)))
        elseif pystr.indexof(u(0)) >= 0 then
            chr = pystr.chars(pystr.indexof(u(0)))
        elseif pystr.indexof(v(0)) >= 0 then
            chr = pystr.chars(pystr.indexof(v(0)))
        end if

        return chr
    end function
    '判斷是否為合法的拼音字符
    private shared function ispychar(byval chr as char) as boolean
        select case chr
            case "a"c
                return true
            case "o"c
                return true
            case "e"c
                return true
            case "i"c
                return true
            case "u"c
                return true
            case "v"c
                return true
            case else
                return false
        end select
    end function
    '轉換
    private shared function conversion(byval pystr as string, _
                                       byval tonesite as integer, _
                                       byval tonevalue as integer, _
                                       byval tonechar as char) as string
        if tonevalue >= 1 and tonevalue <= 4 then
            select case tonechar
                case "a"
                    pystr = pystr.replace(tonechar, a(tonevalue).chars(0))
                case "o"
                    pystr = pystr.replace(tonechar, o(tonevalue).chars(0))
                case "e"
                    pystr = pystr.replace(tonechar, e(tonevalue).chars(0))
                case "i"
                    pystr = pystr.replace(tonechar, i(tonevalue).chars(0))
                case "u"
                    pystr = pystr.replace(tonechar, u(tonevalue).chars(0))
                case "v"
                    pystr = pystr.replace(tonechar, v(tonevalue).chars(0))
            end select
            pystr = pystr.replace(tonevalue.tostring, "")
            return pystr
        end if
    end function
#end region

#region "由漢字到拼音"
    public shared function gethztopy(byval hzstr as string, _
                                 optional byval tonevalue as integer = 0, _
                                 optional byval iscomp as boolean = false) as string
        'byval tonevalue as integer, _
        if hzstr.length = 0 then exit function
        if pylist.count = 0 then loadpychars()
        miscompelled = iscomp
        if miscompelled then
        else
            dim tmpstr as string = ""
            dim i as integer
            dim num as integer
            for i = 1 to hzstr.length
                num = asc(hzstr)
                debug.writeline(num.tostring)
                tmpstr = getpychars(num)
                tmpstr = getpytopy(tmpstr & tonevalue)
                return tmpstr
            next
        end if
    end function

    private shared function getpychars(byval num as integer) as string
        if num > 0 and num < 160 then
            return chr(num)
        else
            if num < -20319 or num > -10247 then
                return ""
            else
                dim i, value as integer
                for i = pylist.count - 1 to 0 step -1
                    if pylist.getbyindex(i) <= num then exit for
                next
                'value = ctype(pylist.getbyindex(i), integer)
                return pylist.getkey(i).tostring
            end if
        end if
    end function
#end region

end class
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线播放视频| 97视频在线免费观看| 亚洲欧美日韩一区在线| 亚洲免费高清视频| 欧美洲成人男女午夜视频| 91av在线不卡| 青青久久aⅴ北条麻妃| 亚洲欧美视频在线| 91精品在线观| 日本久久中文字幕| 中文字幕自拍vr一区二区三区| 日韩电影免费在线观看中文字幕| 亚洲自拍偷拍色片视频| 国产精品久久久久久久久久久久久| 亚洲精品国产免费| 午夜免费日韩视频| 久久免费视频网| 久久久久久com| 精品久久久久久久久久久久久久| 日韩电影在线观看永久视频免费网站| 久久久国产精彩视频美女艺术照福利| 国产91亚洲精品| 国产男人精品视频| 91精品视频在线看| 国产精品亚洲第一区| 精品国产欧美成人夜夜嗨| 久久中文字幕在线| 亚洲丁香久久久| 欧美激情欧美激情| 亚洲精品美女久久久| 亚洲国产97在线精品一区| 国产精品视频内| 欧美高清无遮挡| 美日韩精品免费视频| 51视频国产精品一区二区| 亚洲第一精品久久忘忧草社区| 精品在线小视频| 国产精品一区二区久久久久| 国产a∨精品一区二区三区不卡| 欧美激情a在线| 国产亚洲视频中文字幕视频| 亚洲一区二区免费在线| 日韩女在线观看| 亚洲国产精品悠悠久久琪琪| 日韩精品久久久久久福利| 久久久精品一区二区三区| 国产亚洲视频中文字幕视频| 日韩免费精品视频| 亚洲精品美女视频| 海角国产乱辈乱精品视频| 色偷偷91综合久久噜噜| 欧日韩不卡在线视频| 日韩成人av网址| 久久中文字幕视频| 国产精品视频一区二区三区四| 亚洲欧美中文日韩在线v日本| 久久亚洲私人国产精品va| 久久久久久亚洲精品中文字幕| 中文字幕视频一区二区在线有码| 国产欧美一区二区三区久久人妖| 久久久久这里只有精品| 欧美日韩国产色视频| 欧美激情网站在线观看| 精品一区电影国产| 日韩欧美大尺度| 日韩精品在线第一页| 欧美激情女人20p| 在线观看精品自拍私拍| 2019中文字幕全在线观看| 97涩涩爰在线观看亚洲| 国产精品视频99| 最新国产成人av网站网址麻豆| 97色伦亚洲国产| 亚洲一区国产精品| 亚洲天堂影视av| 亚洲美女av在线播放| 26uuu国产精品视频| 欧美激情视频一区二区| 欧美一区二区三区图| 国产欧美日韩视频| 国产精品视频网站| 久久久久久久亚洲精品| 久久久久久欧美| 国产精品美女免费视频| 久久国产精品电影| 亚洲欧美福利视频| 久久精品一偷一偷国产| 亚洲一区999| 成人羞羞国产免费| 正在播放欧美一区| 亚洲精品国产精品自产a区红杏吧| 国产精品中文字幕久久久| 日韩中文字幕视频在线| 日本aⅴ大伊香蕉精品视频| 亚洲欧美日韩高清| 成人高h视频在线| 欧美日韩一区二区免费在线观看| 国模精品视频一区二区三区| 深夜福利日韩在线看| 国产精品毛片a∨一区二区三区|国| 久久久精品国产| 51色欧美片视频在线观看| 亚洲影院高清在线| 亚洲欧美日韩精品久久| 91大神在线播放精品| 欧美激情视频在线免费观看 欧美视频免费一| 久久久国产影院| 尤物九九久久国产精品的分类| 精品久久久久久亚洲精品| 91精品国产91久久久久久| 国产精品免费一区二区三区都可以| 在线a欧美视频| 国产一区红桃视频| 欧美成年人视频| 精品夜色国产国偷在线| 97视频在线免费观看| 色一区av在线| 日本一欧美一欧美一亚洲视频| 亚洲午夜精品久久久久久久久久久久| 亚洲精品美女在线| 国产主播在线一区| 国产日韩在线观看av| 成人黄色av网| 欧美视频不卡中文| 久久精品色欧美aⅴ一区二区| 欧美一级电影久久| 亚洲天堂网在线观看| 久久精品国产清自在天天线| 欧美日韩国产91| 久久精品国产v日韩v亚洲| 国产成人精品久久亚洲高清不卡| 欧美大片在线看免费观看| 欧美日韩视频免费播放| 亚洲欧美日本另类| 中文字幕在线国产精品| 97成人精品视频在线观看| 57pao国产精品一区| 成人福利免费观看| 日韩免费av一区二区| 国产成人自拍视频在线观看| 亚洲美女喷白浆| 欧美一性一乱一交一视频| 欧美日韩亚洲网| 亚洲第一页自拍| 亚洲自拍偷拍区| 国产午夜精品久久久| 日韩精品视频在线免费观看| 国产欧美亚洲视频| 欧美成人免费小视频| 91久久国产综合久久91精品网站| 日韩精品中文字幕在线| 欧美性黄网官网| 亚洲精品国产美女| 视频在线一区二区| 亚洲缚视频在线观看| 久热精品视频在线免费观看| 91久久精品久久国产性色也91| 92裸体在线视频网站| 亚洲精品自拍偷拍| 亚洲精品97久久| 日本道色综合久久影院| 91精品国产乱码久久久久久蜜臀| 国产精品主播视频| 亚洲电影免费观看高清完整版在线|