Строка сравнения в C # - PullRequest
       18

Строка сравнения в C #

0 голосов
/ 28 марта 2010

У меня есть строка типа 20090101, и я хочу сравнить ее с ????01??.

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

Как сравнить 5-й и 6-й символы с "01"?

Ответы [ 5 ]

11 голосов
/ 28 марта 2010

Обновление: после просмотра вашего комментария, я думаю, вам следует проанализировать строку как 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.
}
5 голосов
/ 28 марта 2010

Я думаю, что это может быть то, что вы хотите:

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

Это позволит получить двухсимвольную подстроку ввода (начиная с символа 5) и сравнить ее с "01".

3 голосов
/ 28 марта 2010

Вы должны создать выражение регулярного выражения. чтобы проверить, является ли 4-й и 5-й байт 01, вы можете написать

var r = new Regex("^.{4}01$");
if(r.Match(str) ...) ... 
1 голос
/ 28 марта 2010

В MSDN есть отличная статья о сравнении строк , но вы можете обратиться к String документации для получения конкретной помощи, в частности: String.Compare, String.CompareTo, String.IndexOf и String.Substring.

0 голосов
/ 28 марта 2010

Как сказал Бауэр, вы можете использовать функции String, также вы можете конвертировать строку в Char Array и работать с ней char на char

...