方法一:
 /// <summary>
/// <summary>
 /// 判断字符是否英文半角字符或标点
    /// 判断字符是否英文半角字符或标点
 /// </summary>
    /// </summary>
 /// <remarks>
    /// <remarks>
 /// 32    空格
    /// 32    空格
 /// 33-47    标点
    /// 33-47    标点
 /// 48-57    0~9
    /// 48-57    0~9
 /// 58-64    标点
    /// 58-64    标点
 /// 65-90    A~Z
    /// 65-90    A~Z
 /// 91-96    标点
    /// 91-96    标点
 /// 97-122    a~z
    /// 97-122    a~z
 /// 123-126  标点
    /// 123-126  标点
 /// </remarks>
    /// </remarks>
 public static bool IsBjChar(char c)
    public static bool IsBjChar(char c)
 {
    {
 int i = (int)c;
      int i = (int)c;
 return i >= 32 && i <= 126;
      return i >= 32 && i <= 126;
 }
    }

 /// <summary>
    /// <summary>
 /// 判断字符是否全角字符或标点
    /// 判断字符是否全角字符或标点
 /// </summary>
    /// </summary>
 /// <remarks>
    /// <remarks>
 /// <para>全角字符 - 65248 = 半角字符</para>
    /// <para>全角字符 - 65248 = 半角字符</para>
 /// <para>全角空格例外</para>
    /// <para>全角空格例外</para>
 /// </remarks>
    /// </remarks>
 public static bool IsQjChar(char c)
    public static bool IsQjChar(char c)
 {
    {
 if (c == '\u3000') return true;
      if (c == '\u3000') return true;

 int i = (int)c - 65248;
      int i = (int)c - 65248;
 if (i < 32) return false;
      if (i < 32) return false;
 return IsBjChar((char)i);
      return IsBjChar((char)i);
 }
    }

 /// <summary>
    /// <summary>
 /// 将字符串中的全角字符转换为半角
    /// 将字符串中的全角字符转换为半角
 /// </summary>
    /// </summary>
 public static string ToBj(string s)
    public static string ToBj(string s)
 {
    {
 if (s == null || s.Trim() == string.Empty) return s;
      if (s == null || s.Trim() == string.Empty) return s;

 StringBuilder sb = new StringBuilder(s.Length);
      StringBuilder sb = new StringBuilder(s.Length);
 for (int i = 0; i < s.Length; i++)
      for (int i = 0; i < s.Length; i++)
 {
      {
 if (s[i] == '\u3000')
        if (s[i] == '\u3000')
 sb.Append('\u0020');
          sb.Append('\u0020');
 else if (IsQjChar(s[i]))
        else if (IsQjChar(s[i]))
 sb.Append((char)((int)s[i] - 65248));
          sb.Append((char)((int)s[i] - 65248));
 else
        else
 sb.Append(s[i]);
          sb.Append(s[i]);
 }
      }

 return sb.ToString();
      return sb.ToString();
 }
    }
 
方法二:
添加 Microsoft Visual Basic.NET Runtime 引用。
Console.WriteLine(Microsoft.VisualBasic.Strings.StrConv("abcdefg", VbStrConv.Narrow, 0));
 /// <summary>
/// <summary> /// 判断字符是否英文半角字符或标点
    /// 判断字符是否英文半角字符或标点 /// </summary>
    /// </summary> /// <remarks>
    /// <remarks> /// 32    空格
    /// 32    空格 /// 33-47    标点
    /// 33-47    标点 /// 48-57    0~9
    /// 48-57    0~9 /// 58-64    标点
    /// 58-64    标点 /// 65-90    A~Z
    /// 65-90    A~Z /// 91-96    标点
    /// 91-96    标点 /// 97-122    a~z
    /// 97-122    a~z /// 123-126  标点
    /// 123-126  标点 /// </remarks>
    /// </remarks> public static bool IsBjChar(char c)
    public static bool IsBjChar(char c) {
    { int i = (int)c;
      int i = (int)c; return i >= 32 && i <= 126;
      return i >= 32 && i <= 126; }
    }
 /// <summary>
    /// <summary> /// 判断字符是否全角字符或标点
    /// 判断字符是否全角字符或标点 /// </summary>
    /// </summary> /// <remarks>
    /// <remarks> /// <para>全角字符 - 65248 = 半角字符</para>
    /// <para>全角字符 - 65248 = 半角字符</para> /// <para>全角空格例外</para>
    /// <para>全角空格例外</para> /// </remarks>
    /// </remarks> public static bool IsQjChar(char c)
    public static bool IsQjChar(char c) {
    { if (c == '\u3000') return true;
      if (c == '\u3000') return true;
 int i = (int)c - 65248;
      int i = (int)c - 65248; if (i < 32) return false;
      if (i < 32) return false; return IsBjChar((char)i);
      return IsBjChar((char)i); }
    }
 /// <summary>
    /// <summary> /// 将字符串中的全角字符转换为半角
    /// 将字符串中的全角字符转换为半角 /// </summary>
    /// </summary> public static string ToBj(string s)
    public static string ToBj(string s) {
    { if (s == null || s.Trim() == string.Empty) return s;
      if (s == null || s.Trim() == string.Empty) return s;
 StringBuilder sb = new StringBuilder(s.Length);
      StringBuilder sb = new StringBuilder(s.Length); for (int i = 0; i < s.Length; i++)
      for (int i = 0; i < s.Length; i++) {
      { if (s[i] == '\u3000')
        if (s[i] == '\u3000') sb.Append('\u0020');
          sb.Append('\u0020'); else if (IsQjChar(s[i]))
        else if (IsQjChar(s[i])) sb.Append((char)((int)s[i] - 65248));
          sb.Append((char)((int)s[i] - 65248)); else
        else sb.Append(s[i]);
          sb.Append(s[i]); }
      }
 return sb.ToString();
      return sb.ToString(); }
    }
方法二:
添加 Microsoft Visual Basic.NET Runtime 引用。
Console.WriteLine(Microsoft.VisualBasic.Strings.StrConv("abcdefg", VbStrConv.Narrow, 0));
 
                     
                    
                 
                    
                 



 
       
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号