C#小知识之中英文转换、去空格

举报
GoodTimeGGB 发表于 2023/10/31 11:56:22 2023/10/31
【摘要】 一、中英文转换 1、安装NPinYin 2、编写代码string str = "这里是测试的中文字符串";string str1 = Pinyin.GetChineseText(str);string str2 = Pinyin.GetInitials(str);string str3 = Pinyin.GetPinyin(str); Console.WriteLine("取和拼音相同的汉...

一、中英文转换

1、安装NPinYin

image.png

2、编写代码

string str = "这里是测试的中文字符串";
string str1 = Pinyin.GetChineseText(str);
string str2 = Pinyin.GetInitials(str);
string str3 = Pinyin.GetPinyin(str);
 
Console.WriteLine("取和拼音相同的汉字列表:" + str1);
Console.WriteLine("取中文文本的拼音首字母:" + str2);
Console.WriteLine("取中文文本的拼音:" + str3);

3、运行结果

image.png

二、去空格

1、编写代码

string strWithSpaces = " this is a test string with spaces ";
 
// 字符串行数Trim()可以去掉字符串前后的空格
Console.WriteLine(strWithSpaces.Trim());
 
// 使用字符串的Replace()函数可以去掉字符串中间及前后的空格
Console.WriteLine(strWithSpaces.Replace(" ", ""));
 
 
// 然而,当字符串中含转义字符(如\r, \t, \n)时,Replace函数输出的结果中还是有空格,如:
string strWithSpaces2 = "this\n is\r a\t test\n string\r with\t spaces";
Console.WriteLine(strWithSpaces2.Trim());
 
// 此时当然可以用多个Replace函数来替换这些空格,但稍显麻烦;可以考虑用正则表达式方法Regex.Replace()和匹配符\s(匹配任何空白字符,包括空格,制表符,换页符等,与[\f\n\t\r\v]等效),如:
 Console.WriteLine(Regex.Replace(strWithSpaces2, @"\s", ""));

2、运行结果

image.png

三、中文转英文 + 去掉空格

1、编写代码

string str = "这里是测试的中文字符串";
string strFinal = Regex.Replace(Pinyin.GetPinyin(str).Trim(), @"\s", "");
Console.WriteLine("终极优化:" + strFinal);

2、运行效果

image.png

参考链接

如何去掉C#字符串中的所有空格
npinyin

遇到此问题做此记录,如有帮助,欢迎点赞关注收藏!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。