字符串扩展


  字符串扩展的类名为 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);
}