您的位置:首页 > 编程语言 > C#

C#中全角字符转换为半角

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

/// 判断字符是否全角字符或标点
/// 全角字符 - 65248 = 半角字符
/// 全角空格例外

public static bool IsQjChar(char c)
{
if (c == '/u3000')
{
return true;
}
int i = (int)c - 65248;
if (i < 32)
{
return false;
}
else
{
return IsBjChar((char)i);
}
}

/// 将字符串中的全角字符转换为半角
public static string ToBj(string s)
{
if (s == null || s.Trim() == string.Empty)
{
return s;
}
else
{
StringBuilder sb = new StringBuilder(s.Length);
for (int i = 0; i < s.Length; i++)
{
if (s[i] == '/u3000')
{
sb.Append('/u0020');
}
else if (IsQjChar(s[i]))
{
sb.Append((char)((int)s[i] - 65248));
}
else
{
sb.Append(s[i]);
}
}
return sb.ToString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: