IOS 如何獲取漢字字串的拼音

2021-07-09 22:50:12 字數 2957 閱讀 9418

nsmutablestring *result = [nsmutablestring stringwithstring:@"今天的天真的很藍"];

//先轉換為帶聲調的拼音

cfstringtransform((cfmutablestringref)result,null, kcfstringtransformmandarinlatin,no);

nslog(@"1............%@",result);

//再轉換為不帶聲調的拼音

cfstringtransform((cfmutablestringref)result,null, kcfstringtransformstripdiacritics,no);

nslog(@"2............%@",result);

輸出:

2016-02-15 15:51:20.844 bezierpathdemo[7368:202200] 1............jīn tiān de tiān zhēn de hěn lán

2016-02-15 15:51:20.846 bezierpathdemo[7368:202200] 2............jin tian de tian zhen de hen lan

cfstringtransform中的transform引數涉及的內容很多。這裡有個它能做什麼的概述:

cfstringtransform中的transform引數涉及的內容很多。這裡有個它能做什麼的概述:

énġlišh långuãge lẳcks iñterêßţing diaçrïtičş. 如此類的字串,把擴充套件的拉丁字符集正則化為 ascii 友好型的表示,它非常有用。用kcfstringtransformstripcombiningmarks變換來去掉任意字串中彎彎扭扭的符號。

kcfstringtransformtounicodename讓你可以找出特殊字元的 unicode 標準名,包括 emoji。例如:"" 被轉換成 " ",而 "" 變成了 ""。

除了英語這個重大例外(和它那令人愉快的拼寫不一致),書寫系統一般是將語言音調編碼成一致的符號表示。歐洲語言一般使用拉丁字母(外加一些變音符),俄羅斯用西里爾字母,日本用平假名和片假名,泰國、南韓和阿拉伯國家也都有自己的字母。

雖然每種語言都有特殊的音調列表,也許有些其他語言會缺失,所有主要書寫系統的交集已經足以讓你高效的在不同字母之間轉寫(不要跟翻譯搞混了)。

cfstringtransform可以在拉丁語和阿拉伯語、西里爾語、希臘語、韓語(南韓)、希伯來語、日語(平假名和片假名)、普通話、泰語之間來回轉寫。

transformation

input

output

kcfstringtransformlatinarabic

mrḥbạ

مرحبا

kcfstringtransformlatincyrillic

privet

привет

kcfstringtransformlatingreek

geiá sou

γειά σου

kcfstringtransformlatinhangul

annyeonghaseyo

안녕하세요

kcfstringtransformlatinhebrew

şlwm

שלום

kcfstringtransformlatinhiragana

hiragana

ひらがな

kcfstringtransformlatinkatakana

katakana

カタカナ

kcfstringtransformlatinthai

s̄wạs̄dī

สวัสดี

kcfstringtransformhiraganakatakana

にほんご

ニホンゴ

kcfstringtransformmandarinlatin

中文zhōng wén

並且這只是用了核心類庫中常量定義!直接傳入乙個icu transform表示式,cfstringtransform還可以在拉丁語和阿拉伯語、亞美尼亞語、注音、西里爾字母、喬治亞語、希臘語、漢語、韓語、希伯來語、平假名、印度語(梵文,古吉拉特語,旁遮普文,卡納達語,馬拉雅拉姆語,奧里雅語,泰公尺爾語,特盧固)、朝鮮語、片假名、敘利亞語、塔納文、泰語之間轉寫。

字串變換的乙個更實際的應用是正則化不可預知的使用者輸入。即使你的應用並不單獨處理其他語言,你也應當能智慧型地處理使用者向你的應用輸入的任何內容。

例如,你想在裝置上建立乙個可搜尋的電影索引,它包含世界各地的人的問候:

hello! こんにちは! สวัสดี! مرحبا! 您好! → hello! kon'nichiha! s̄wạs̄dī! mrḥbạ! nín hǎo!

hello! kon'nichiha! s̄wạs̄dī! mrḥbạ! nín hǎo! → hello! kon'nichiha! swasdi! mrhba! nin hao!

分詞用作文字的索引。

(hello, kon'nichiha, swasdi, mrhba, nin, hao)

通過對使用者輸入的文字使用同樣的變換,你就可以實現乙個通用的搜尋,無論搜尋文字或內容是什麼語言!

cfstringtransform會是個用來按你的要求處理語言的十分強大的工具。並且它是,且僅僅是等著你勇敢地投入objective-c的溫暖懷抱的許多強大特性之一。

C 獲取漢字字串拼音首字母的方法

這個c 類經常能夠用到,將提取漢字的拼音首字母,方便使用者查詢 using system.text namespace dotwww.cppcns.comnet.utilities 一級漢字 else if array 0 176 array 0 215 二級漢字 else if array 0 2...

php獲取漢字字串長度

int iconv strlen string str string charset ini get iconv.internal encoding 和 strlen 不同的是,iconv strlen 統計了給定的位元組序列str中出現字元數的統計,基於指定的字符集,其產生的結果不一定和字元位元組...

轉換乙個漢字字元成拼音的字串

import net.sourceforge.pinyin4j.pinyinhelper import net.sourceforge.pinyin4j.format.hanyupinyincasetype import net.sourceforge.pinyin4j.format.hanyupi...