2010-03-28 63 views
0

我有一個字符串,如20090101,我想將其與????01??進行比較。C中的字符串比較#

if (input == "----01--") { .... } 

如何比較第5和第6個字符與「01」?

+1

更多信息燒焦請。 – kenny 2010-03-28 00:43:43

+0

我的意思是說,如果我的輸入與**** 01 **相同​​。例如:if(input ==「20090101」){...}在這個比較中,01對我來說更重要。我怎樣才能指定01 char?謝謝 – Irgat 2010-03-28 01:02:19

+0

看起來像一個日期可疑。你是否想匹配一個日期代表任何一年一月的任何一天? – 2010-03-28 01:18:42

回答

3

你應該創建一個正則表達式。檢查第4和第5個字節是01,你可以寫

var r = new Regex("^.{4}01$"); 
if(r.Match(str) ...) ... 
+0

'$'可能不應該在那裏。 – 2010-03-28 01:39:59

+0

'@「^ \ d {4} 01 \ d \ d $」''怎麼樣? – 2010-03-28 03:41:58

11

更新:看到您的評論後,我想你應該解析字符串爲一個DateTime:

string s = "20090101"; 
DateTime dateTime; 
if (DateTime.TryParseExact(s, "yyyyMMdd", null, DateTimeStyles.None, out dateTime)) 
{ 
    if (dateTime.Month == 1) 
    { 
     // OK. 
    } 
} 
else 
{ 
    // Error: Not a valid date. 
} 
+0

是的,非常感謝 – Irgat 2010-03-28 00:55:59

5

我想這可能是你想要什麼:

if (input.Substring(4, 2) == "01") 
{ 
    // do something 
} 

這將讓輸入兩個字符的字符串(以字符開始的5),並把它比作"01"

+0

是的,這是我的答案謝謝 – Irgat 2010-03-28 01:12:35

+0

如果輸入少於6個字符,這將引發異常。 – 2010-03-28 03:48:37

0

正如鮑爾說,你可以使用字符串函數,你也可以字符串轉換爲字符數組,並使用它通過焦炭