C#全角轉(zhuǎn)換成半角
新建一個(gè)項(xiàng)目quanbanjiao,在此項(xiàng)目下新建一個(gè)類Class1
namespace quanbanjiao
{
public class Class1
{
/**/
/// <summary>
/// 判斷字符是否英文半角字符或標(biāo)點(diǎn)
/// </summary>
/// <remarks>
/// 32 空格
/// 33-47 標(biāo)點(diǎn)
/// 48-57 0~9
/// 58-64 標(biāo)點(diǎn)
/// 65-90 A~Z
/// 91-96 標(biāo)點(diǎn)
/// 97-122 a~z
/// 123-126 標(biāo)點(diǎn)
/// </remarks>
public static bool IsBjChar(char c)
{
int i = (int)c;
return i >= 32 && i <= 126;
}
/**/
/// <summary>
/// 判斷字符是否全角字符或標(biāo)點(diǎn)
/// </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>
/// 將字符串中的全角字符轉(zhuǎn)換為半角
/// </summary>
public static string ToBj(string type,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]);
}
//如果是int類型的,則只能輸入int類型,否則自動(dòng)設(shè)為0
if (type.ToLower() == "int")
{
try
{
Convert.ToInt32(sb.ToString());
}
catch
{
return "0";
}
}
//如果是float或double類型的,則只能輸入這兩種類型,否則自動(dòng)設(shè)為0
if (type.ToLower() == "float" || type.ToLower() == "double")
{
try
{
Convert.ToDouble(sb.ToString());
}
catch
{
return "0";
}
}
return sb.ToString();
}
}
}
新聞熱點(diǎn)
疑難解答
圖片精選