【问题标题】:looping through a string with foreach使用 foreach 循环遍历字符串
【发布时间】:2015-02-13 01:03:32
【问题描述】:

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

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循环要走的路吗?

【问题讨论】:

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


【解决方案1】:

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

byte val = byte.Parse(num);

那么变量val 将在其中包含正确的值。

【讨论】:

    【解决方案2】:

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

    您的代码运行良好。调试器只是显示字符的 ASCII 码。

    【讨论】:

    • 是和否。不,我忽略了我测试num 是否等于另一个数字的部分,所以它在那里失败了。是的,它确实适用于字符串生成器。
    • @DPB 您将有效的代码放在您的问题中,而忽略了您遇到问题的部分?
    【解决方案3】:

    试试这个就好了

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-02
      • 2014-02-28
      • 2014-09-19
      • 2023-03-23
      • 2013-03-17
      相关资源
      最近更新 更多