String a = new String("foo");
String b = new String("foo");
System.out.println(a == b); // prints false
System.out.println(a.equals(b)); // prints true
Убедитесь, что вы понимаете, почему. Это потому, что сравнение ==
сравнивает только ссылки; equals()
метод сопоставляет содержимое по символу.
Когда вы вызываете new для a
и b
, каждый получает новую ссылку, указывающую на "foo"
в таблице строк. Ссылки разные, но контент один и тот же.
Вы можете использовать « Регулярное выражение », например, в этом случае
var str = "wiki.google.com/wiki/";
var reg = new System.Text.RegularExpressions.Regex(@"(.+\..+\..+)/.+");
string domain = null;
if (reg.IsMatch(str))
domain = reg.Matches(str)[0].Groups[1].Value;