Разница между двумя строками C # - PullRequest
18 голосов
/ 22 сентября 2011

Допустим, у меня есть две строки:

string s1 = "hello";
string s2 = "hello world";

Есть ли способ получить string s3 = " world";, в котором разница между двумя строками?

РЕДАКТИРОВАТЬ:

Разница всегда будет в этом сценарии

s1 = "abc"
s2 = "abcd ads as "

Ответы [ 6 ]

26 голосов
/ 22 сентября 2011

Использование string s3 = s2.Replace(s1, "");

РЕДАКТИРОВАНИЕ: Обратите внимание, что все вхождения s1 в s2 будут отсутствовать в s3.Обязательно внимательно рассмотрите комментарии к этому сообщению, чтобы подтвердить, что это желаемый результат, например, сценарии, упомянутые в комментарии @ mellamokb .

5 голосов
/ 22 сентября 2011

Если вы правильно определили регистр, альтернативное решение было бы:

string s3 = s2.substring(s1.Length);

Это предполагает, что вторая строка начинается с тех же символов, что и первая строка, и вы просто хотите отрубитьпервоначальное дублирование.

5 голосов
/ 22 сентября 2011
string s1 = "hello";
string s2 = "hello world";
string s3 = s2.replace(s1,"");
4 голосов
/ 22 сентября 2011

с простой заменой

string s3 = s2.Replace(s1, "");
2 голосов
/ 22 сентября 2011

IF (большое "если") s1 всегда является подстрокой s2, тогда вы можете работать с .IndexOf и .Length, чтобы найти где в s2 что s1 есть.

1 голос
/ 18 октября 2016

Первый ответ без условий вне кода:

string s3 = null;
if (s2.StartsWith(s1))
{
    s3 = s2.Substring(s1.Length);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...