我有一个包含大量字母的字符串。我使用以下代码将其转换为数字,但新字符串 t 仍然给我不完美的结果。 例如:
tung2003 - > -1-1-1-12003
我的期望: 1161171101032003(116是 t 的ASCII码,117是 u 的
的ASCII码
string t=null;
foreach (char c in Properties.Settings.Default.password)
{
int ascii = (int)Char.GetNumericValue(c);
int counter=0;
counter = ascii;
t = t + Convert.ToString(counter);
}
问题是 - 字符。我希望我的新字符串只包含数字。
答案 0 :(得分:2)
看起来你不希望根据你的预期输出得到数字的ASCII值。在这种情况下,您可以执行以下操作:
string input = "tung2003";
string output = string.Empty;
foreach(char c in input)
{
if(char.IsNumber(c))
{
output += c;
}
else
{
output += ((byte)c).ToString();
}
}
//output is now: 1161171101032003
小提琴here
答案 1 :(得分:1)
还添加了Linq表达式作为短手解决方案。
// Method 1 Linq
string output = string.Concat(("tung2003".ToCharArray()
.Select(s=> char.IsDigit(s) ? s.ToString() : ((int)s).ToString())));
// Method 2
string input = "tung2003";
string output = string.Empty;
foreach (char c in input)
{
if (Char.IsDigit(c)) output += c.ToString();
else output += ((int)c).ToString();
}
答案 2 :(得分:-1)
string t = "";
foreach (char c in Properties.Settings.Default.password)
{
if (IsNumber(x)) t += System.Convert.ToInt32(c).ToString();
else
{
t += c.ToString();
}
}
而且,如果你只想摆脱' - '使用此代码:t =String.Replace(t, '-');