/// <summary> /// 耶鲁方案 /// </summary> /// <param name="ch"></param> /// <returns></returns> private static string GetFirstYelePinyinString(char ch) { string[] pinyinStrArray = PinyinHelper.ToYalePinyinStringArray(ch); if ((null != pinyinStrArray) && (pinyinStrArray.Length > 0)) { return(pinyinStrArray[0]); } else { return(null); } }
public void testToYalePinyinStringArray() { // any input of non-Chinese characters will return null { Assert.IsNull(PinyinHelper.ToYalePinyinStringArray('A')); Assert.IsNull(PinyinHelper.ToYalePinyinStringArray('z')); Assert.IsNull(PinyinHelper.ToYalePinyinStringArray(',')); Assert.IsNull(PinyinHelper.ToYalePinyinStringArray('。')); } // Chinese characters // single pronounciation { string[] expectedPinyinArray = new string[] { "li3" }; string[] pinyinArray = PinyinHelper.ToYalePinyinStringArray('李'); Assert.AreEqual(expectedPinyinArray.Length, pinyinArray.Length); for (int i = 0; i < expectedPinyinArray.Length; i++) { Assert.AreEqual(expectedPinyinArray[i], pinyinArray[i]); } } { string[] expectedPinyinArray = new string[] { "chyou2" }; string[] pinyinArray = PinyinHelper.ToYalePinyinStringArray('球'); Assert.AreEqual(expectedPinyinArray.Length, pinyinArray.Length); for (int i = 0; i < expectedPinyinArray.Length; i++) { Assert.AreEqual(expectedPinyinArray[i], pinyinArray[i]); } } { string[] expectedPinyinArray = new string[] { "jwang1" }; string[] pinyinArray = PinyinHelper.ToYalePinyinStringArray('桩'); Assert.AreEqual(expectedPinyinArray.Length, pinyinArray.Length); for (int i = 0; i < expectedPinyinArray.Length; i++) { Assert.AreEqual(expectedPinyinArray[i], pinyinArray[i]); } } // multiple pronounciations { string[] expectedPinyinArray = new string[] { "chwan2", "jwan4" }; string[] pinyinArray = PinyinHelper.ToYalePinyinStringArray('传'); Assert.AreEqual(expectedPinyinArray.Length, pinyinArray.Length); for (int i = 0; i < expectedPinyinArray.Length; i++) { Assert.AreEqual(expectedPinyinArray[i], pinyinArray[i]); } } { string[] expectedPinyinArray = new string[] { "lyu4", "lu4" }; string[] pinyinArray = PinyinHelper.ToYalePinyinStringArray('绿'); Assert.AreEqual(expectedPinyinArray.Length, pinyinArray.Length); for (int i = 0; i < expectedPinyinArray.Length; i++) { Assert.AreEqual(expectedPinyinArray[i], pinyinArray[i]); } } }