C#中的字符串操作

时间:2009-03-19 07:14:11

标签: c#

假设我有一个字符串"011100011"。 现在我需要通过添加此字符串的相邻数字来查找另一个字符串,就像输出字符串应为"123210122"

如何拆分字符串中的每个字符并对其进行操作?

我认为使用Parsing将字符串转换为整数并使用模数或其他东西拆分每个字符并对它们执行操作的方法。

但你能提出一些更简单的方法吗?

3 个答案:

答案 0 :(得分:1)

尝试将字符串转换为字符数组,然后从'0'值中减去char以检索整数值。

答案 1 :(得分:1)

string input = "011100011";
int current;

for (int i = 0; i < input.Length; i ++)
{
  current = int.Parse(input[i]);

  // do something with current...
}

答案 2 :(得分:1)

这是一个使用LINQ plus dahlbyk的想法的解决方案:

string input = "011100011";

// add a 0 at the start and end to make the loop simpler
input = "0" + input + "0"; 

var integers = (from c in input.ToCharArray() select (int)(c-'0'));
string output = "";
for (int i = 0; i < input.Length-2; i++)
{
    output += integers.Skip(i).Take(3).Sum();
}

// output is now "123210122"

请注意:

  • 代码未优化。例如。你可能想在for循环中使用StringBuilder。
  • 如果输入字符串中有'9',会发生什么?&gt;这可能会导致输出字符串中出现两位数字。