導航:首頁 > 編程語言 > 漢字轉換拼音java

漢字轉換拼音java

發布時間:2023-05-30 15:10:28

A. java 怎麼將拼音轉換為漢字

一個漢字 只對應 一個拼音 ,但是一個拼音是對應多個漢字的, 你想要的功能,就好像一個輸入法,輸入一堆拼音,顯示對應的漢字。這個我不知道,有沒有輸入法提供這樣的介面,簡單點就是這樣,但是復雜點,根據你輸入的拼音顯示出足夠智能的漢字,這不簡單。java有把漢字轉拼音的架包,不是拼音轉漢字

B. java中漢語轉換成拼音且可以分大小寫

例如:張三 我現在得到結果是 zhangsan 我想要的結果是ZhangSan

這個很簡單,你既然可以得到zhangsan了說明你已經有庫了,
那麼你就一個個漢字去讀庫啊

例如:先讀張,得到zhang,將第一個字元變為大寫就是Zhang了,再去庫里讀三得到san,再將S大寫,依次類推最後將所有字元串拼起來不就是ZhangSan了嗎。

C. java如何獲取漢字的拼音字母

獲取首字母需要對漢字表和字母表進行映射,如下示例代碼是以gb2312編碼為入手點,進行匹配的,也可以使用gbk、utf-8等編碼進行匹配,但代碼就完全不同了。

示例代碼如下:

public class FirstLetterUtils {

// 簡體中文的編碼范圍從B0A1(45217)一直到F7FE(63486)
private static int BEGIN = 45217;
private static int END = 63486;

// 按照聲 母表示,這個表是在GB2312中的出現的第一個漢字,也就是說「啊」是代表首字母a的第一個漢字。
// i, u, v都不做聲母, 自定規則跟隨前面的字母
private static char[] chartable = { '啊', '芭', '擦', '搭', '蛾', '發', '噶', '哈', '哈', '擊', '喀', '垃', '媽', '拿', '哦', '啪', '期', '然', '撒', '塌', '塌', '塌', '挖', '昔', '壓', '匝', };

// 二十六個字母區間對應二十七個端點
// GB2312碼漢字區間十進製表示
private static int[] table = new int[27];

// 對應首字母區間表
private static char[] initialtable = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 't', 't', 'w', 'x', 'y', 'z', };

// 初始化
static {
for (int i = 0; i < 26; i++) {
table[i] = gbValue(chartable[i]);// 得到GB2312碼的首字母區間端點表,十進制。
}
table[26] = END;// 區間表結尾
}

// ------------------------public方法區------------------------
// 根據一個包含漢字的字元串返回一個漢字拼音首字母的字元串 最重要的一個方法,思路如下:一個個字元讀入、判斷、輸出

public static String cn2py(String SourceStr) {
String Result = "";
int StrLength = SourceStr.length();
int i;
try {
for (i = 0; i < StrLength; i++) {
Result += Char2Initial(SourceStr.charAt(i));
}
} catch (Exception e) {
Result = "";
e.printStackTrace();
}
return Result;
}

// ------------------------private方法區------------------------
/**
* 輸入字元,得到他的聲母,英文字母返回對應的大寫字母,其他非簡體漢字返回 '0' *
*/
private static char Char2Initial(char ch) {
// 對英文字母的處理:小寫字母轉換為大寫,大寫的直接返回
if (ch >= 'a' && ch <= 'z') {
return (char) (ch - 'a' + 'A');
}
if (ch >= 'A' && ch <= 'Z') {
return ch;
}
// 對非英文字母的處理:轉化為首字母,然後判斷是否在碼表范圍內,
// 若不是,則直接返回。
// 若是,則在碼表內的進行判斷。
int gb = gbValue(ch);// 漢字轉換首字母
if ((gb < BEGIN) || (gb > END))// 在碼表區間之前,直接返回
{
return ch;
}
int i;
for (i = 0; i < 26; i++) {// 判斷匹配碼表區間,匹配到就break,判斷區間形如「[,)」
if ((gb >= table[i]) && (gb < table[i + 1])) {
break;
}
}
if (gb == END) {// 補上GB2312區間最右端
i = 25;
}
return initialtable[i]; // 在碼表區間中,返回首字母
}

/**
* 取出漢字的編碼 cn 漢字
*/
private static int gbValue(char ch) {// 將一個漢字(GB2312)轉換為十進製表示。
String str = new String();
str += ch;
try {
byte[] bytes = str.getBytes("GB2312");
if (bytes.length < 2) {
return 0;
}
return (bytes[0] << 8 & 0xff00) + (bytes[1] & 0xff);
} catch (Exception e) {
return 0;
}
}

public static void main(String[] args) throws Exception {
System.out.println(cn2py("這是一個獲取首字母的class"));
}
}

D. java 怎麼把拼音轉成漢字

以前好像有個pinYin4j.jar的但是是用來漢字轉拼音的,但是拼音轉漢字 如果是簡單的還好說,如果很多那感覺應該非常復雜,多音字太多了,至少你需要一個完整的漢字型檔。不好整,如果lz有好的想法不妨交流一下。

E. 怎麼將拼音轉成漢字 Java

您好!

很高心為您會打這個問題,拼音轉換字的實現到時挺多的,但是需要庫,如果沒有三方庫的話,轉換就比較麻煩,恰好python是出了名的三方庫多,個人認為你可以通過java調用python進行轉換,使用PythonInterpreter類調用即可,然後至於python如何轉換,請參考開源代碼網頁鏈接,希望採納

F. Java中文轉換拼音在本地沒有問題,在伺服器上測出錯,很詭異,請各位大大們指教

- - - 中文亂碼問題?什麼中文轉換拼音?
你列印一下中文看看,應該是中文變成亂碼了。

設置一個過濾器,就是添加一個filter,在這個類裡面將所有傳到伺服器的數據都轉換成目標編碼。

如果還是不能解決,看一下伺服器設置,伺服器裡面也有可能需要設置成統一的編碼格式的。

建議將所有的編碼格式都設置為utf-8

G. java中怎樣輸入漢字顯示漢字的拼音

java輸入漢語拼音,輸出匹配的漢字,不藉助客戶的選擇,匹配完全正確是幾乎不可能的,尤其是人名,否則拼音輸入法早就演變成無需在輸入漢語拼音後還要選字選詞的操作方式了。

這個屬於自然語言處理的范疇:NLP,暫時還沒有看到過java上的相關應用。
但是,可以參考一下拼音輸入法,這個需求和輸入法很相似啊,不過,現在成熟的輸入法都不能夠完全做到一次性將拼音和漢字匹配成功,這個很有難度,頂多隻是匹配,盡量的匹配。

H. java可以通過漢字得到帶聲調的拼音嗎

packagetest;
importnet.sourceforge.pinyin4j.PinyinHelper;
importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
importnet.sourceforge.pinyin4j.format.HanyuPinyinToneType;
importnet.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
importnet.sourceforge.pinyin4j.format.exception.;
publicclassTest{
publicstaticvoidmain(String[]args)throws{
HanyuPinyinOutputFormatformat=newHanyuPinyinOutputFormat();
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
String[]pinyinHead=PinyinHelper.toHanyuPinyinStringArray('度',format);
for(Stringstring:pinyinHead){
System.out.print(string+"、");
}
}
}

輸出:dù、ó、ò

I. 漢字轉拼音java熵字報錯怎麼辦

如果在使用Java實現漢字轉拼音時出現熵字報錯,可以嘗試以下幾個步驟:

1. 檢查代碼中是否存在中文字元集問題,比如使用了不支持中文字元集的編碼方式。可以嘗試使用UTF-8編碼方式。

2. 檢查代碼中是否存在特殊字元,比如冒號、空格等,這些字元可能會導致熵字報錯。可以嘗試使用正則表達式將這些特殊字元過濾掉。咐含

3. 檢查代碼中是否存在編碼方式不一致的問題,比如將UTF-8編碼的字元串當作GB2312編碼處理。可以嘗試使用Java內置的編碼轉換API進行轉嘩慎換。

4. 如果以上方法均無法解決問題,可以嘗試使用第三方的漢字轉拼音庫,比如Pinyin4j、HanLP等。

總之,需要仔細檢查代碼中的問題,並逐步排除衡蘆笑可能出現的錯誤,才能成功解決熵字報錯的問題。

J. java如何通過代碼把字元串數組裡面的漢字全部變成對應的拼音的首字母,數組裡面的數據有的有符號,逗號

public class Son {
public static void main(String[] args) {
String[] a = {"wo shi yi ge bing","lai zi lao ban xing","da si bu chi fan"};
f(a);
}
public static String[] f(String[] a){
for (int i = 0; i < 3; i++) {
char[] b = a[i].toCharArray();
if (b[0] >= 97 b[0] <= 122) {
b[0] = (char) (b[0] - 32);
}
a[i] = new String(b);
if (a[i].substring(a[i].length()- 1, a[i].length()) != ".") {
a[i] += ".";
}
}
for (int i = 0; i < 3; i++) {
System.out.println(a[i]);
}
return a;
}

}
這是改的樓上的,他的有錯誤,substring(startIndex,endIndex)這句,endIndex應該為字元串長度,而不是1

閱讀全文

與漢字轉換拼音java相關的資料

熱點內容
unix命令rename 瀏覽:864
文件加密了為啥發不出去了 瀏覽:457
單片機調節馬達 瀏覽:743
鏡花pdf 瀏覽:610
廣西民族大學app忘記密碼怎麼辦 瀏覽:374
學生伺服器是什麼意思 瀏覽:533
如何下載快切app 瀏覽:723
如何將電腦c盤文件加密 瀏覽:886
嵌入式為什麼linux 瀏覽:553
c語言編譯器屬於系統軟體 瀏覽:725
android如何斷點調試 瀏覽:722
圖解韓語pdf 瀏覽:302
sas查各文件夾空間大小 瀏覽:454
python腳本檢查埠 瀏覽:960
催眠解壓視頻泡沫 瀏覽:309
雲伺服器部署系統 瀏覽:879
惡意加密別人的文件犯法 瀏覽:833
漢語語法pdf 瀏覽:158
詞法分析編譯原理論文 瀏覽:271
電腦文件夾還原方法 瀏覽:534