java生成首字母拼音簡碼的總結

百度找到了某論壇高人寫的java(具體論壇記不清了),直接用來調用,再次非常感謝,基本上實現了我的需求

package MD5;
import java.util.Scanner;
public class ChineseToPinYin {
/**
* 漢字轉拼音縮寫
*
* @param str
* 要轉換的漢字字符串
* @return String 拼音縮寫
*/
public String getPYString(String str) {
String tempStr = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 33 && c <= 126) {// 字母和符號原樣保留
tempStr += String.valueOf(c);
} else {// 累加拼音聲母
tempStr += getPYChar(String.valueOf(c));
}
}
return tempStr;
}

/**
* 取單個字符的拼音聲母
*
* @param c
* //要轉換的單個漢字
* @return String 拼音聲母
*/
public String getPYChar(String c) {
byte[] array = new byte[2];
array = String.valueOf(c).getBytes();
int i = (short) (array[0] - '\0' + 256) * 256 + ((short) (array[1] - '\0' + 256));
if (i < 0xB0A1)
return "*";
if (i < 0xB0C5)
return "a";
if (i < 0xB2C1)
return "b";
if (i < 0xB4EE)
return "c";
if (i < 0xB6EA)
return "d";
if (i < 0xB7A2)
return "e";
if (i < 0xB8C1)
return "f";
if (i < 0xB9FE)
return "g";
if (i < 0xBBF7)
return "h";
if (i < 0xBFA6)
return "j";
if (i < 0xC0AC)
return "k";
if (i < 0xC2E8)
return "l";
if (i < 0xC4C3)
return "m";
if (i < 0xC5B6)
return "n";
if (i < 0xC5BE)
return "o";
if (i < 0xC6DA)
return "p";
if (i < 0xC8BB)
return "q";
if (i < 0xC8F6)
return "r";
if (i < 0xCBFA)
return "s";
if (i < 0xCDDA)
return "t";
if (i < 0xCEF4)
return "w";
if (i < 0xD1B9)
return "x";
if (i < 0xD4D1)
return "y";
if (i < 0xD7FA)
return "z";
return "*";
}
//以下是測試類
public static void main(String[] args) {
ChineseToPinYin ctpy = new ChineseToPinYin();
Scanner sc = new Scanner(System.in);
System.out.println("請輸入漢字:");
String str = sc.next();
String py = ctpy.getPYString(str).toUpperCase();//toUpperCase()代表拼音碼轉換成大寫字母
System.out.print("拼音:" + py);
}
}

2、以下是我的程序調用部分

//拼音碼加入
ChineseToPinYin ctpy = new ChineseToPinYin();
String pym = ctpy.getPYString(kname).toUpperCase();

pst.setString(7,pym);

轉載于:https://www.cnblogs.com/gzwxx505094038/p/6499122.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253262.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253262.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253262.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sockaddr_in , sockaddr , in_addr區別Socket編程函數集(非常有用)

一、sockaddr和sockaddr_in在字節長度上都為16個BYTE&#xff0c;可以進行轉換 struct sockaddr { unsigned short sa_family; //2 char sa_data[14]; //14 }; 上面是通用的socket地址&#xff0c;具體到Int…

Python 購物車

購物車需求&#xff1a; 可購買的商品信息顯示 顯示購物車內的商品信息、數量 購物車內的商品數量進行增加、減少 用戶余額的充值 用戶購買完成進行結賬&#xff0c;將最終余額回寫到用戶文件中   流程圖&#xff1a; 代碼&#xff1a; 1、主文件 def login():# 驗證用戶帳號…

認對畫對MOS管

MOS管我們在設計電路中經常用的一種無源器件。 首先介紹下&#xff0c;在原理圖和PCB以及實物PCBA中如何辨別各種MOS管&#xff0c;作為應用好的先決條件&#xff0c;必須認對畫對管子。 1. MOS管的GSD三極在原理圖和PCB上怎么判定&#xff1a; G極(gate)—柵極&#xff0c;原…

Jmeter之BeanShell

在Jmeter中各種分類組件中都有相應的BeanShell組件&#xff0c;這里簡單的說明一下Beanshell的使用。 一、概念 BeanShell是一種符合Java語法的腳本語言&#xff0c;也有自己的一些特定語法 二、內置變量 Jmeter在它的Beanshell中內置了變量&#xff0c;用戶可以通過這些變量與…

HDU 1875 暢通工程再續

傳送門&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1875 簡單的最小生成樹 #include <iostream> #include <cstdio> #include <cmath> using namespace std;const int maxn100005; const double INF1.0e20;struct Node{double x,y; } isl[maxn];…

C語言變長數組 struct中char data[0]的用法

摘要&#xff1a;在實際的編程中&#xff0c;我們經常需要使用變長數組&#xff0c;但是C語言并不支持變長的數組。此時&#xff0c;我們可以使用結構體的方法實現C語言變長數組。 struct MyData {int nLen;char data[0];}; 在結構中&#xff0c;data是一個數組名&#xff1b;但…

MOS管的實際應用

繼上一篇“認對畫對MOS管”后&#xff0c;現在小結一下MOS管的具體應用&#xff1a; 應用MOS管前&#xff0c;理解MOS管每個參數的具體意義后&#xff0c;再額外注意一下管子本身的體二極管&#xff0c;本身Vf1.6V&#xff0c;導通后管子本身阻抗一般是mΩ級&#xff1b;管子廠…

imp導入前對當前用戶清庫腳本

--清空當前用戶所有表begin for i in ( select drop table || a.tab_name as sqls from (select distinct t.tab_name from (select Lower(table_name) as tab_name from user_tables) t) a ) loop dbms_output.put_line(i.sqls); execute immediate i.sqls; end loop;end;/--清…

Spring - Spring Boot Spring Cloud

Spring -> Spring Boot > Spring Cloud 這幾天剛剛上班&#xff0c;公司用的是Spring Cloud&#xff0c;接觸不多。我得趕快學起來。 想學習就必須得知道什么是微服務&#xff0c;什么是Spring Boot&#xff0c;什么是Spring Cloud&#xff0c;以及兩者之間有什么關系&am…

C語言 · 前10名

算法提高 前10名 時間限制&#xff1a;1.0s 內存限制&#xff1a;256.0MB問題描述數據很多&#xff0c;但我們經常只取前幾名&#xff0c;比如奧運只取前3名。現在我們有n個數據&#xff0c;請按從大到小的順序&#xff0c;輸出前10個名數據。輸入格式兩行。第一行一個整數n…

ssacanf\Sprintf格式化字符串

一、sscanf sscanf() - 從一個  int sscanf(const char *buffer,const char *format,[argument ]...); buffer 存儲的數據 format 格式控制字符串 argument 選擇性設定字符串 sscanf會從buffer里讀進數據&#xff0c;依照argument的設定將數據寫回。字符串中讀進與指定格式相…

防火墻規則

1、iptables -t -L -n -t指定表格 -L 顯示目前表格的規則 -n 數字顯示2、iptables-save 以命令方式顯示規則3、清除清空filter從頭制定規則 ipatables -F 清除已經定義 iptables -X 清除自定義鏈 iptables -z 清除鏈統計和計數4、設定默認規則,當所有規則不匹…

JAVA中循環刪除list中元素的方法總結

印象中循環刪除list中的元素使用for循環的方式是有問題的&#xff0c;但是可以使用增強的for循環&#xff0c;然后今天在使用時發現報錯了&#xff0c;然后去科普了一下&#xff0c;再然后發現這是一個誤區。下面就來講一講。。伸手黨可直接跳至文末。看總結。。 JAVA中循環遍歷…

直流有刷電機與無刷電機的區別

首先介紹有刷電機與無刷電機工作原理&#xff0c;最后從調速方式及性能差異這兩個方面詳細的闡述了有刷電機與無刷電機的區別。 有刷電機與無刷電機工作原理 1、有刷電機 電機工作時&#xff0c;線圈和換向器旋轉&#xff0c;磁鋼和碳刷不轉&#xff0c;線圈電流方向的交替變化…

MapReduce詳解

MapReduce簡介 MapReduce是一種編程模型&#xff0c;用于大規模數據集&#xff08;大于1TB&#xff09;的并行運算。概念"Map&#xff08;映射&#xff09;"和"Reduce&#xff08;歸約&#xff09;"&#xff0c;是它們的主要思想。 MapReduce極大地方便了編…

JavaScriptBreak 語句 continue 語句

break 語句用于跳出循環。 continue 用于跳過循環中的一個迭代。 Break 語句 我們已經在本教程之前的章節中見到過 break 語句。它用于跳出 switch() 語句。 break 語句可用于跳出循環。 continue 語句跳出循環后&#xff0c;會繼續執行該循環之后的代碼&#xff08;如果有的話…

kernel mtd 分區與UBOOT 分區的理解

今天做內核移植&#xff0c;準備添加NAND flash的驅動&#xff0c;做到MTD分區時&#xff0c;想起在一本書上看到的一句話&#xff0c;說的是分區時每個區之間沒有間隙&#xff0c;前一個區的結束地址是后一個區的起始地址。可是當我看我的開發板的教程時&#xff0c;分區如下&…

運放的主要參數詳細介紹

1. 引言 運放的作用是調節和放大模擬信號&#xff0c;它是用途十分廣泛的器件&#xff0c;接入適當的反饋網絡&#xff0c;可用作精密的交流和直流放大器、有源濾波器濾波器、振蕩器振蕩器及電壓比較器。其應用領域包括但不限制通訊、電子、汽車、工業檢測等等&#xff0c;并將…

FastDFS 文件上傳工具類

FastDFS文件上傳工具類 import org.csource.common.NameValuePair;import org.csource.fastdfs.ClientGlobal;import org.csource.fastdfs.StorageClient1;import org.csource.fastdfs.StorageServer;import org.csource.fastdfs.TrackerClient;import org.csource.fastdfs.Tra…

MOS管的主要參數與重要特性

雙極性晶體管&#xff1a;NPN和PNP管&#xff1b; 單極性晶體管&#xff1a;場效應管&#xff08;MOSFET和JFET&#xff09;&#xff1b; MOS管相對三極管具有速度快、輸入阻抗高、噪聲低、動態范圍大、功耗小、容易集成等優點。 下面總結下其主要參數與重要特性&#xff0c…