getFirstCharPinyin static method
会忽略str
开头的空白符
- 如果
str
的首字符为中文字符,将转换返回该字符的拼音 - 如果
str
为字母,将转为小写
并返回该字母 - 如果
str
为数字,则返回数值 - 如果
str
为空、无法转为拼音,则返回 null
Implementation
static String? getFirstCharPinyin(
String str, {
bool enableAZ = true,
bool enableNum = true,
}) {
if (str.isEmpty) {
return null;
}
// 移除开头的空白符
str.replaceFirst(r"^\s+", "");
if (str.isEmpty) {
return null;
}
final code = str.codeUnitAt(0);
if (isCode_num(code)) {
if (enableNum) {
return str[0];
} else {
return null;
}
} else if (isCode_az(code)) {
if (enableAZ) {
return str[0];
} else {
return null;
}
} else if (isCode_AZ(code)) {
if (enableAZ) {
return String.fromCharCode(code + (CODE_a - CODE_A));
} else {
return null;
}
} else {
final result = PinyinHelper.getFirstWordPinyin(str);
if (result.isNotEmpty) {
// 非空
final code = result.codeUnitAt(0);
if (isCode_AZaz(code)) {
// 第一个字符在 [A-Za-z]
return result.toLowerCase();
}
}
return null;
}
}