中文汉字转拼音——大写(默认),小写,首字母大写

...好吧先上效果图~

 

 

 

主要代码:

public class MainActivity extends Activity {

	private TextView tv_test;
	String str = "你好世界";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		tv_test = (TextView) findViewById(R.id.tv_test);
		ArrayList<Token> arrayList = HanziToPinyin.getInstance().get(str);
		String string = arrayList.toString();
		Log.e("", ""+string);
		String pinyin = "";
		if (arrayList != null && arrayList.size() > 0) {
			for (Token token : arrayList) {
				if (Token.PINYIN == token.type) {
					//pinyin
					String str = token.target;
					int length = str.length();
					if(length>=1){
						//首字母大写其余字母小写
						String first = str.substring(0, 1);
						String substring = str.substring(1, length);
						String lowerCase = substring.toLowerCase();
						pinyin += first+lowerCase;
						Log.e("pinyin", pinyin);
					} 
				} else {
					//未知语 or 拉丁语
				}
			}
		}
		String pinYin2 = getPinYin(str);
		tv_test.setText(pinyin+"\n"+pinYin2);
	}

	// 汉字返回拼音,字母原样返回,都转换为小写(默认取得的拼音全大写)
	public static String getPinYin(String input) {
		ArrayList<Token> tokens = HanziToPinyin.getInstance().get(input);
		StringBuilder sb = new StringBuilder();
		if (tokens != null && tokens.size() > 0) {
			for (Token token : tokens) {
				if (Token.PINYIN == token.type) {
					sb.append(token.target);
				} else {
					sb.append(token.source);
				}
			}
		}
		return sb.toString().toLowerCase();//toLowerCase() 大写变小写
	}
}



重点在拿到ArrayList<Token>的列表数据之后的循环,在里面操作即可~

 

 

好像就这么简单额.....................注释也挺直白的...嗯,上demo吧还是...

 

中文汉字转拼音

 

 

展开阅读全文

没有更多推荐了,返回首页