2012-08-03 52 views
0

我被卡住了。 (現在有一個思維障礙):/如何修剪一個字符串並將殘差存儲在數組中?

我需要一個字符串,它包含大量的「sometext \ n \ t \ t \ t \ t00:00 \ n \ t \ t \ t \ t05 :32 \ n \ t \ t \ t \ t ....「
此字符串中總是有8個值。我想要在數組[8]中的每個(這8個)值。
但最重要的是價值。 (開頭的文字是不必要的)。

+0

我不知道如何設置此代碼?! :/ – MrMAG 2012-08-03 08:44:38

+0

哪種語言? – 2012-08-03 08:44:47

+0

c#..抱歉,我忘了命名它。 – MrMAG 2012-08-03 08:57:17

回答

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個製表符分隔。

如果這不是(總是)分隔符,那麼您需要指定如何從「分隔符」中識別「值」。

+0

'source.Split(「\ n \ t \ t \ t \ t」);'不能像這樣工作。你只能分割(一個)字符。所以我會得到一個巨大的數組[451]。分隔符應該始終相同。 (我的包含更多\ t)。 – MrMAG 2012-08-03 09:13:24

+0

我使用了'var result = source.Split(new Char [] {'\ n','\ t',});' – MrMAG 2012-08-03 09:14:27

+0

@ user1559441 - 我改正了我的例子,現在可以使用。你的例子在任何'\ n'或'\ t'上分割,所以它返回很多空值。 – 2012-08-03 09:48:13

0

我認爲下面的代碼會做你需要什麼

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'; 
    } 
}  
+0

不能將類型'字符串'轉換爲char ?! 我可以只用一個字符串嗎?當然你可以使用字符串 – MrMAG 2012-08-03 08:55:04

+0

。因爲你在c#中請求代碼,我只是將代碼從C++更新到c# – lavin 2012-08-03 15:08:49

相關問題