日期:2014-05-18  浏览次数:21215 次

怎么用代码实现全码数字转成半码字符
哪位大G指点一下,,在WEB开发时怎么把全码转成半码....谢谢啦..

------解决方案--------------------
C# code
string S = "2008年01月30日";
for (int i = 0; i <= 9; i++)
    S = S.Replace((char)((ushort)'0' + i), (char)((ushort)'0' + i));

------解决方案--------------------
[code=C#][/code] /**//// <summary>

/// 转全角的函数(SBC case)

/// </summary>

/// <param name="input">任意字符串</param>

/// <returns>全角字符串</returns>

///<remarks>

///全角空格为12288,半角空格为32

///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248

///</remarks>

public string ToSBC(string input)

{

//半角转全角:

char[] c=input.ToCharArray();

for (int i = 0; i < c.Length; i++)

{

if (c[i]==32)

{

c[i]=(char)12288;

continue;

}

if (c[i]<127)

c[i]=(char)(c[i]+65248);

}

return new string(c);

}





/**//// <summary>

/// 转半角的函数(DBC case)

/// </summary>

/// <param name="input">任意字符串</param>

/// <returns>半角字符串</returns>

///<remarks>

///全角空格为12288,半角空格为32

///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248

///</remarks>

public string ToDBC(string input)

{

char[] c=input.ToCharArray();

for (int i = 0; i < c.Length; i++)

{

if (c[i]==12288)

{

c[i]= (char)32;

continue;

}

if (c[i]>65280 && c[i]<65375)

c[i]=(char)(c[i]-65248);

}

return new string(c);

}


------解决方案--------------------
string str = "2214234123412";
StringBuilder sb = new StringBuilder();
foreach(Char ch in str.ToCharArray())
{
if(Char.IsDigit(ch))
{
switch(ch)
{
case '1': 
sb.Append(1);
break;
case '2':
sb.Append(2);
break;
case '3': 
sb.Append(3);
break;
case '4':
sb.Append(4);
break;
case '5': 
sb.Append(5);
break;
case '6': 
sb.Append(6);
break;
case '7':
sb.Append(7);
break;
case '8': 
sb.Append(8);
break;
case '9':
sb.Append(9);
break;
case '0':
sb.Append(0);
break;
default:
sb.Append(ch);
break;
}
}
}
string sss = sb.ToString();