全角字符转换为半角,判断半角和全角
2008-02-15 09:26
1146 查看
/// <summary>
/// 判断字符是否英文半角字符或标点
/// </summary>
/// <remarks>
/// 32 空格
/// 33-47 标点
/// 48-57 0~9
/// 58-64 标点
/// 65-90 A~Z
/// 91-96 标点
/// 97-122 a~z
/// 123-126 标点
/// </remarks>
public static bool IsBjChar(char c)
{
int i = (int)c;
return i >= 32 && i <= 126;
}
/// <summary>
/// 判断字符是否全角字符或标点
/// </summary>
/// <remarks>
/// <para>全角字符 - 65248 = 半角字符</para>
/// <para>全角空格例外</para>
/// </remarks>
public static bool IsQjChar(char c)
{
if (c == '/u3000') return true;
int i = (int)c - 65248;
if (i < 32) return false;
return IsBjChar((char)i);
}
/// <summary>
/// 将字符串中的全角字符转换为半角
/// </summary>
public static string ToBj(string s)
{
if (s == null || s.Trim() == string.Empty) return s;
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();
}
2005-9-29 发现更简单的方法。
添加 Microsoft Visual Basic.NET Runtime 引用。
Console.WriteLine(Microsoft.VisualBasic.Strings.StrConv("abcdefg", VbStrConv.Narrow, 0));
看一下 VbStrConv 枚举
UpperCase 将字符串转换成大写字符。
LowerCase 将字符串转换成小写字符。
ProperCase 将字符串中每个词的第一个字母转换成大写。
Wide 将字符串中的窄(单字节)字符转换成宽(双字节)字符。应用于亚洲区域设置。
Narrow 将字符串中的宽(双字节)字符转换成窄(单字节)字符。应用于亚洲区域设置。
Katakana 将字符串中的平假名字符转换为片假名字符。仅应用于日语区域设置。
Hiragana 将字符串中的片假名字符转换为平假名字符。仅应用于日语区域设置。
SimplifiedChinese 将字符串转换为简体中文字符。
TraditionalChinese 将字符串转换为繁体中文字符。
LinguisticCasing 将字符串从文件系统大小写规则转换为语义规则。
/// 判断字符是否英文半角字符或标点
/// </summary>
/// <remarks>
/// 32 空格
/// 33-47 标点
/// 48-57 0~9
/// 58-64 标点
/// 65-90 A~Z
/// 91-96 标点
/// 97-122 a~z
/// 123-126 标点
/// </remarks>
public static bool IsBjChar(char c)
{
int i = (int)c;
return i >= 32 && i <= 126;
}
/// <summary>
/// 判断字符是否全角字符或标点
/// </summary>
/// <remarks>
/// <para>全角字符 - 65248 = 半角字符</para>
/// <para>全角空格例外</para>
/// </remarks>
public static bool IsQjChar(char c)
{
if (c == '/u3000') return true;
int i = (int)c - 65248;
if (i < 32) return false;
return IsBjChar((char)i);
}
/// <summary>
/// 将字符串中的全角字符转换为半角
/// </summary>
public static string ToBj(string s)
{
if (s == null || s.Trim() == string.Empty) return s;
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();
}
2005-9-29 发现更简单的方法。
添加 Microsoft Visual Basic.NET Runtime 引用。
Console.WriteLine(Microsoft.VisualBasic.Strings.StrConv("abcdefg", VbStrConv.Narrow, 0));
看一下 VbStrConv 枚举
UpperCase 将字符串转换成大写字符。
LowerCase 将字符串转换成小写字符。
ProperCase 将字符串中每个词的第一个字母转换成大写。
Wide 将字符串中的窄(单字节)字符转换成宽(双字节)字符。应用于亚洲区域设置。
Narrow 将字符串中的宽(双字节)字符转换成窄(单字节)字符。应用于亚洲区域设置。
Katakana 将字符串中的平假名字符转换为片假名字符。仅应用于日语区域设置。
Hiragana 将字符串中的片假名字符转换为平假名字符。仅应用于日语区域设置。
SimplifiedChinese 将字符串转换为简体中文字符。
TraditionalChinese 将字符串转换为繁体中文字符。
LinguisticCasing 将字符串从文件系统大小写规则转换为语义规则。
相关文章推荐
- 将全角字符转换成半角的js方法
- iOS 判断字符是全角还是半角
- 判断字符是全角和半角
- php全角字符转换为半角函数
- 如何转换全角字符到半角字符?zz对于所有编程来说这个是通用的。。
- PHP中文全角字符/英文半角转换对照表
- c#中怎样实现字符全角半角转换
- C#中全角字符转换为半角
- 全角字符数字转换为半角字符数字
- [VBA]字符转换代码:全角转半角,平假名转片假名,首字母大写
- javascript实现全角与半角字符的转换
- sql 实现全角与半角字符转换的处理函数
- 全角与半角字符的转换
- 全角字符和半角字符之间的转换
- c++ builder:如何转换全角字符到半角字符?
- php字符串处理之全角半角转换(正则匹配全角字符思路)
- js判断数字,如果出现全角数字,将其转换为半角
- java全角字符转换为半角 半角转全角
- 将一个字串中含有全角的数字字符、字母、空格或'%+-()'字符转换为相应半角字符
- javascript实现全角与半角字符的转换