.net core 通过PinYinConverterCore实现汉字转拼音,获取中文字符串首字母

目录

  • 一、事故现场
  • 二、解决方法

一、事故现场

项目之前使用的.net framework,可以通过引用 Microsoft.International.Converters.PinYinConverter 类库。来实现汉字转拼音。
现在项目移植到.net core,之前的类库已不能使用。

二、解决方法

使用PinYinConverterCore包来实现汉字转拼音。

1、安装方法

  • Nuget
Install-Package PinYinConverterCore
  • .NET CLI
dotnet add package PinYinConverterCore

2、代码示例

#中文转拼音
using Microsoft.International.Converters.PinYinConverter;
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "我AI你中国!123";
            string result = string.Empty;
            foreach (char item in str)
            {
                try
                {
                    ChineseChar cc = new ChineseChar(item);
                    if (cc.Pinyins.Count > 0 && cc.Pinyins[0].Length > 0)
                    {
                        string temp = cc.Pinyins[0].ToString();
                        result += temp.Substring(0, temp.Length - 1);
                    }
                }
                catch (Exception)
                {
                    result += item.ToString();
                }
            }
            Console.WriteLine(result);//"WOAINIZHONGGUO!123"
        }
    }
}
#获取中文字符串首字母
using Microsoft.International.Converters.PinYinConverter;
using System.Linq;
namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine( GetFirstChar("我爱你"));// "W"
            Console.WriteLine(GetFirstChar("WO爱你"));// "W"
            Console.WriteLine(GetFirstChar("#我爱你"));// "#"
        }
        public static char GetFirstChar(string name)
        {
            var c = name.First();
            if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z'))
            {
                return c;
            }
            else
            {
                try
                {
                    ChineseChar cc = new ChineseChar(c);
                    if (cc.Pinyins.Count > 0 && cc.Pinyins[0].Length > 0)
                    {
                        return cc.Pinyins[0][0];
                    }
                }
                catch (Exception ex)
                {
                    return c;
                }
                return c;
            }
        }
    }
}


.net core 通过PinYinConverterCore实现汉字转拼音,获取中文字符串首字母

原文地址:https://www.cnblogs.com/willingtolove/p/12150756.html

时间: 2024-11-20 15:44:58

.net core 通过PinYinConverterCore实现汉字转拼音,获取中文字符串首字母的相关文章

MySQL按照汉字的拼音排序、按照首字母分类

项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需要按拼音字母从A到Z分类显示. 如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了),直接在查询语句后面添加ORDER BY name ASC,查询结果将按照姓氏的升序排序:如果存储姓名的字段采用的是utf8字符集,需要在排序的时候对字段进行转码,对应的代码是ORD

swift把汉字转换为拼音,并且截取首字母做索引用

var transformContents = CFStringCreateMutableCopy(nil, 0, "咋啊的看到回复阿斯顿发货发哦iasdifas")CFStringTransform(transformContents, nil, kCFStringTransformMandarinLatin, 0)var traStr:String = transformContents as Stringlet index = advance(traStr.startIndex,

C# 汉字转拼音 将中文转换成拼音

//建立一个公共类,用于转换汉字 public class ChnToPh { //定义拼音区编码数组 private static int[] getValue = new int[] { -20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036, -20032,-20026,-20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775

【原创】字符串工具类--获取汉字对应的拼音(全拼或首字母)

1.引入pinyin4j-2.5.0.jar包 2.代码实现: import java.util.regex.Matcher; import java.util.regex.Pattern; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.Hanyu

汉字转拼音,中文拼音排序器

汉字转拼音 NSMutableString *ms = [[NSMutableString alloc] initWithString:@"我是中国人"]; if (CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStringTransformMandarinLatin, NO)) { NSLog(@"Pingying: %@", ms); // wǒ shì zhōng guó rén } if (

MySQL While取出汉字字符串首字母存储过程(不区分多音字)

-- pinyin 返回整个汉字字符串所有首字母 BEGIN DECLARE V_COMPARE VARCHAR(255); DECLARE V_RETURN VARCHAR(255); DECLARE I INT; SET I = 1; SET V_RETURN = ''; while I < LENGTH(P_NAME) do SET V_COMPARE = SUBSTR(P_NAME, I, 1); IF (V_COMPARE != '') THEN #SET V_RETURN = CON

好用的获取中文字符串拼音首字母的方法(亲测)

function getFirstCharter($str){ if(empty($str)){return '';} $fchar=ord($str{0}); if($fchar>=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0}); $s1=iconv('UTF-8','gb2312',$str); $s2=iconv('gb2312','UTF-8',$s1); $s=$s2==$str?$s1:$str; $as

IOS通讯录分区section汉字转拼音截取首字母

//汉字转拼音之后,截取首字母,并大写 -(NSString *)transformCharacter:(NSString*)sourceStr { //先将原字符串转换为可变字符串 NSMutableString *ms = [NSMutableString stringWithString:sourceStr]; if (ms.length) { //将汉字转换为拼音 CFStringTransform((__bridge CFMutableStringRef)ms, 0, kCFStrin

ios汉字转拼音首字母

ios汉字转拼音首字母 //获取拼音首字母(传入汉字字符串, 返回大写拼音首字母) - (NSString *)firstCharactor:(NSString *)aString { //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:aString]; //先转换为带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransform