用foreach循环一个字符串

时间:2014-12-14 23:49:14

标签: c# string types foreach for-in-loop

好的,基本上我有一个看起来像这样的字符串:

var output = "475183602";

我想遍历字符串中的每个字符。

我目前有这个:

foreach (char num in output)
    {
     StringBuilder.appendFormat("<p value=\"{0}\"></p>",num);
    }

但是当我调试时,设置断点并检查num它给我这个:

  

52'4'

我尝试使用:

foreach (byte num in output)

然而,这只是给了我52

我如何才能获得这四个?

运行这样的for循环是否更好:

for (i=0;i<output.length;i++) {
 var num = output.Substring(i,1);
//string builder here
}

或者是一个foreach循环的方式?

3 个答案:

答案 0 :(得分:2)

查看StringBuilder的实际内容,您会发现它是正确的。

您的代码运行正常。调试器只显示字符的ASCII代码。

答案 1 :(得分:1)

你的第一种方法就好了。它给你52因为那是字符'4'的ASCII码。如果希望值为4,则需要将字符解析为字节值:

byte val = byte.Parse(num);

然后变量val将包含正确的值。

答案 2 :(得分:1)

试试这个,没关系

foreach (char num in output.ToCharArray())
  StringBuilder.AppendFormat("<p value=\"{0}\"></p>",num.ToString());