字符串扩展
字符串扩展的类名为 StringExtension
,是基于 System.String
类型的扩展。
1、取左/右边 n 个字符串
Left 方法用于取字符串左边的n个字符来组成新的字符串,Right 取右边的 n 个字符。
[TestMethod]
public void TestLeftRight()
{
Assert.AreEqual("美丽", "美丽新世界".Left(2));
Assert.AreEqual("世界", "美丽新世界".Right(2));
}
2、获取字符串长度
GetAnsiLength 方法将一个汉字作为 2 个长度来计算,而英文字符则仍为 1 个长度。
[TestMethod]
public void TestGetAnsiLength()
{
Assert.AreEqual(10, "美丽新世界".GetAnsiLength());
Assert.AreEqual(20, "美丽新世界,good luck".GetAnsiLength());
Assert.AreEqual(5, "美丽新世界".Length);
}
3、半/全角编码转换
ToSBC 方法将字符转换为全角编码;ToDBC 方法将字符转换为半角编码。
[TestMethod]
public void Test()
{
Assert.AreEqual("abc", "abc".ToSBC());
Assert.AreEqual("abc", "abc".ToDBC());
}
4、数值/整型判断
IsNumeric 方法判断字符串是否可转换为数值;IsInteger 方法判断字符串是否可转换为整型。
5、中文编码解码
DeUnicode 方法允许将 \u3232
这样的编码转换为中文汉字。
6、正则匹配
IsMatch 方法实际是 Regex.IsMatch 的封装。
7、汉字简/繁体转换
ToSimplified 方法将汉字转换为简体;ToTraditional 方法将汉字转换为繁体。
[TestMethod]
public void Test()
{
Assert.AreEqual("中國", "中国".ToTraditional());
Assert.AreEqual("中国", "中國".ToSimplified());
}
8、获取汉字拼音
ToPinyin 提取汉字中的拼音首字母。缺省 containRare 参数的情况下,仅支持简化字的转换,如果要支持生僻字,则参数使用 true。
[TestMethod]
public void Test()
{
Assert.AreEqual("YESSWLQ濷", "一二三四五六七濷".ToPinyin());
Assert.AreEqual("YESSWLQF", "一二三四五六七濷".ToPinyin(true));
}
9、单/复数转换
ToPlural 方法将单词变为复数形式,ToSingular 方法将复数变为单数形式。
[TestMethod]
public void Test()
{
Assert.AreEqual("bodies", "body".ToPlural());
Assert.AreEqual("people", "people".ToPlural());
Assert.AreEqual("girls", "girl".ToPlural());
Assert.AreEqual("body", "bodies".ToSingular());
Assert.AreEqual("people", "people".ToSingular());
Assert.AreEqual("girl", "girls".ToSingular());
}
10、获取行数
GetLines 通过判断字符串回车键的个数来统计行数。
[TestMethod]
public void TestGeLines()
{
var lines = @"中国
人".GetLines();
Assert.AreEqual(2, lines);
}