设计接单网站大全,软件工程师是程序员吗,横向网站源码,专业免费网站建设哪里便宜转换 获取一个汉字的拼音首字母。 GB码两个字节分别减去160#xff0c;转换成10进制码组合就可以得到区位码例如汉字“你”的GB码是0xC4/0xE3#xff0c;分别减去0xA0#xf…转换 获取一个汉字的拼音首字母。 GB码两个字节分别减去160转换成10进制码组合就可以得到区位码例如汉字“你”的GB码是0xC4/0xE3分别减去0xA0160就是0x24/0x430x24转成10进制就是360x43是67那么它的区位码就是3667在对照表中读音为‘n’。 XML布局 LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:context.MainActivity EditTextandroid:idid/editandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:hint输入汉字 /EditTextButtonandroid:idid/buttonandroid:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:textbutton /ButtonTextViewandroid:idid/textViewandroid:layout_widthfill_parentandroid:layout_heightwrap_content /TextView/LinearLayout 代码 public class MainActivity extends Activity {static final int GB_SP_DIFF 160;// 存放国标一级汉字不同读音的起始区位码static final int[] secPosValueList { 1601, 1637, 1833, 2078, 2274, 2302,2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027,4086, 4390, 4558, 4684, 4925, 5249, 5600 };// 存放国标一级汉字不同读音的起始区位码对应读音static final char[] firstLetter { a, b, c, d, e, f, g, h,j, k, l, m, n, o, p, q, r, s, t, w, x,y, z };private EditText edit;private TextView text;private Button button;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);edit (EditText) this.findViewById(R.id.edit);text (TextView) this.findViewById(R.id.textView);button (Button) this.findViewById(R.id.button);button.setOnClickListener(buttonListener);text.setText(拼音);}private View.OnClickListener buttonListener new View.OnClickListener() {Overridepublic void onClick(View v) {// TODO Auto-generated method stubif (v button) {String characters edit.getText().toString();String spells getSpells(characters);text.setText(spells);}}};public static String getSpells(String characters) {StringBuffer buffer new StringBuffer();for (int i 0; i characters.length(); i) {char ch characters.charAt(i);if ((ch 7) 0) {// 判断是否为汉字如果左移7为为0就不是汉字否则是汉字} else {char spell getFirstLetter(ch);buffer.append(String.valueOf(spell));}}return buffer.toString();}// 获取一个汉字的首字母public static Character getFirstLetter(char ch) {byte[] uniCode null;try {uniCode String.valueOf(ch).getBytes(GBK);} catch (UnsupportedEncodingException e) {e.printStackTrace();return null;}if (uniCode[0] 128 uniCode[0] 0) { // 非汉字return null;} else {return convert(uniCode);}}/*** 获取一个汉字的拼音首字母。 GB码两个字节分别减去160转换成10进制码组合就可以得到区位码* 例如汉字“你”的GB码是0xC4/0xE3分别减去0xA0160就是0x24/0x43* 0x24转成10进制就是360x43是67那么它的区位码就是3667在对照表中读音为‘n’*/static char convert(byte[] bytes) {char result -;int secPosValue 0;int i;for (i 0; i bytes.length; i) {bytes[i] - GB_SP_DIFF;}secPosValue bytes[0] * 100 bytes[1];for (i 0; i 23; i) {if (secPosValue secPosValueList[i] secPosValue secPosValueList[i 1]) {result firstLetter[i];break;}}return result;}} 我是天王盖地虎的分割线 源代码http://pan.baidu.com/s/1dD1Qx01 中文拼音首字母.zip 参考http://www.oschina.net/code/snippet_203635_11850#19466转载于:https://www.cnblogs.com/dongweiq/p/3927209.html