【问题标题】:How to trim a string and store residue in a array?如何修剪字符串并将残差存储在数组中?
【发布时间】:2012-08-03 08:40:49
【问题描述】:

我被困住了。 (现在有一个思维障碍):/

我需要一个字符串数组,其中包含很多“sometext\n\t\t\t\t00:00\n\t\t\t\t05:32\n\t\t\t\ ……”
此字符串中始终有 8 个值。我想要数组 [8] 中的每个(这 8 个)值。
但最重要的是价值。 (开头的文字是不必要的)。

【问题讨论】:

  • 我不知道如何设置此代码?! ://
  • c#.. 抱歉忘记命名了。

标签: c# arrays string .net-2.0


【解决方案1】:

这行得通吗:

 var source = "sometext\n\t\t\t\t00:00\n\t\t\t\t05:32\n\t\t\t\t...."
 var result = source.Split(new []{"\n\t\t\t\t"}, StringSplitOptions.None);

也就是说:猜测您的所有值都由换行符+4个制表符分隔。

如果那不是(总是)分隔符,那么您需要指定如何从“分隔符”中识别“值”。

【讨论】:

  • source.Split("\n\t\t\t\t"); 不能这样工作。您只能拆分(一个)字符。所以我会得到一个巨大的数组 [451] 结果。分隔符应始终相同。 (我的只是包含更多 \t)。
  • 我用过var result = source.Split(new Char[] { '\n', '\t', });
  • @user1559441 - 我更正了我的示例,现在可以使用了。您的示例拆分任何\n\t,因此它返回很多空值。
  • true,对于所有空值,这是一个糟糕的解决方案。您的示例返回一个包含字符串第一部分的数组。 '"总时间\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t \t\t\t\t00:00"'.. 顺便说一句。我快速浏览了字符串(源)。第一个“\n\t\t\t..”比其他 6 个短(长度相同)。我正在尝试string s = myString.Replace("\t", ""); 结果对我的大部分目的来说都可以。
【解决方案2】:

我认为以下代码可以满足您的需要

 int i,j;
 int[] array=new int[8];
 string s="sometext\n\t\t\t\t00:00\n\t\t\t\t05:32\n\t\t\t\t...."; // or input something
 for(i=j=0;i<s.Length;i++){
    if (s[i]>='0'&&s[i]<='9'){
       array[j++]=s[i]-'0';
    }
 }    

【讨论】:

  • 不能将类型'string'隐式转换为char?!我可以只使用一个字符串吗?
  • 当然可以使用字符串。当您要求使用 c# 中的代码时,我刚刚将代码从 c++ 更新为 c#
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多