C # - если операторы против частей строки - PullRequest
0 голосов
/ 29 сентября 2010

Я в основном хочу проверить, начинается ли часть строки с определенной последовательности - в этом случае ftp: // или http: //.Как бы я это сделал?

Спасибо

Ответы [ 6 ]

12 голосов
/ 29 сентября 2010

Использование String.StartsWith.Имея всего два возможных префикса, вы можете написать его следующим образом:

if (s.StartsWith("http://") || s.StartsWith("ftp://")) { ... }

Если у вас много разных возможных префиксов, лучше вместо этого использовать цикл или выражение LINQ.Например:

string[] prefixes = { "http://", "ftp://", /* etc... */ };
if (prefixes.Any(prefix => s.StartsWith(prefix)))
{
    // ...
}
4 голосов
/ 29 сентября 2010
  if(myString.StartsWith("ftp://") || myString.StartsWith("http://")) { }  

если вы хотите игнорировать регистр, используйте StringComparison.OrdinalIgnoreCase.

  if(myString.StartsWith("ftp://", StringComparison.OrdinalIgnoreCase) || myString.StartsWith("http://", StringComparison.OrdinalIgnoreCase)) { }  
1 голос
/ 29 сентября 2010
1 голос
/ 29 сентября 2010
if( myString.StartsWith("ftp://")){
  ...
}

Аналогично, если вы хотите проверить http://,, но измените параметр на StartsWith.

0 голосов
/ 29 сентября 2010

Вы должны использовать метод String.StartsWith .

0 голосов
/ 29 сентября 2010

Лично я бы предложил использовать Regex, но самая простая форма -

string myText = @"http://blabla.com";
if (myText.IndexOf("http://") == 0 || myText.IndexOf("ftp://") == 0))
{
//dosome
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...