...好吧先上效果图~
主要代码:
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吧还是...