在C#中,可以使用Unicode编码的范围来判断一个字符串是全角字符还是半角字符。下面是判断的实现代码:
using System.Text.RegularExpressions;
public static bool IsFullWidth(string str)
{
if (string.IsNullOrEmpty(str))
return false;
Regex regex = new Regex("^[\uFF00-\uFFFF]$");
return regex.IsMatch(str);
}
public static bool IsHalfWidth(string str)
{
if (string.IsNullOrEmpty(str))
return false;
Regex regex = new Regex("^[\u0020-\u007F]+$");
return regex.IsMatch(str);
}
其中,IsFullWidth
方法通过使用正则表达式匹配Unicode编码在\uFF00
至\uFFFF
范围内的字符判断是否为全角字符,如果是则返回true
,否则返回false
。IsHalfWidth
方法则通过使用正则表达式匹配Unicode编码在\u0020
至\u007F
范围内的字符判断是否为半角字符,如果是则返回true
,否则返回false
。
接下来,我们可以使用两个示例来演示这个方法的使用:
示例一:判断输入的用户名是不是全角字符
string username = "demo";
if (IsFullWidth(username))
{
Console.WriteLine("用户名必须是半角字符");
}
else
{
Console.WriteLine("用户名是全角字符或者半角字符");
}
示例二:替换全角字符为半角字符
string input = "这是一个测试:demo。";
string output = string.Empty;
foreach (char c in input)
{
if (IsFullWidth(c.ToString()))
{
int index = (int)c - 65248;
output += (char)index;
}
else
{
output += c;
}
}
Console.WriteLine(output);
在这个示例中,我们使用了IsFullWidth
方法来判断每个字符是否为全角字符,并且使用(int)c - 65248
的方式来将全角字符转换为半角字符的Unicode编码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中判断字符串是全角还是半角的实现代码 - Python技术站