Я сходил с ума, потому что ни один из ответов здесь не работал для меня.
Чтобы показать меню, я должен был вызвать: setSupportActionBar(toolbar)
Готово!
Примечание: если ваш вид toolbar
не совпадает макет вы не можете использовать вызов выше непосредственно из вашего класса деятельности, в этом случае вам нужно получить это действие из вашего класса фрагмента, а затем вызвать setSupportActionBar(toolbar)
. Помните: ваш класс активности должен расширять AppCompatActivity.
Надеюсь, что этот ответ поможет вам.
Я предполагаю, что вы хотите извлечь имя домена или часть строки TLD . Это должно сработать:
var str = "google.com 220 USD 3d 19h";
var domain = str.Split(' ')[0]; // google.com
var tld = domain.Substring(domain.IndexOf('.')) // .com
хорошо, если вы можете предположить, что пространство является разделителем, это так же просто, как
string full
char [] delimiterChars = {''}; // используется, чтобы вы могли указать больше разделителей строка [] words = full.Split (delimiterChars, 1); // разделяет только одно слово пробелом
string result = words [0] // вот как вы можете получить к нему доступ
Альтернативный вариант
string str = "google.com 220 USD 3d 19h";
string match = ".com";
string dotcomportion = str.Substring(str.IndexOf(match), match.Length);
Если под извлечением вы подразумеваете удаление, вы можете использовать метод Replace
var result = str.Replace (". Com", "");
Я знаю, что вы спрашивали об использовании метода Split, но я Я не уверен, что это лучший маршрут. Разделение строки приведет к выделению как минимум 5 новых строк, которые немедленно игнорируются, а затем придется ждать, пока GC не будет выпущен. Вам лучше просто использовать индексацию в строке и вытащить именно то, что вам нужно.
string str = "google.com 220 USD 3d 19h";
int ix = str.IndexOf( ' ' );
int ix2 = str.IndexOf( '.', 0, ix );
string tld = str.Substring( ix2, ix - ix2 );
string domain = str.Substring( 0, ix );
Предполагая, что вам нужен домен верхнего уровня:
string str = "google.com 220 USD 3d 19h";
string tld = str.Substring(str.LastIndexOf('.')).Split(' ')[0];
Console.WriteLine(tld);
Вывод:
.com
При этом учитываются субдомены.
использование Regex было бы лучшим вариантом, но если вы хотите использовать Split, тогда
var str = "google.com 220 USD 3d 19h";
var str1 = str.Split(' ')[0];
var str2 = str1.Split('.')[0];
Console.WriteLine(str1.Replace(str2, string.Empty));
Я не могу придумать причину, по которой вы хотели бы использовать String.Split
для этой цели. Эту проблему лучше всего решить с помощью регулярного выражения.
Вот небольшая программа, которая демонстрирует, как это сделать:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
String foo = "google.com 220 USD 3d 19h";
Regex regex = new Regex(@"(.com)", RegexOptions.IgnoreCase);
Match match = regex.Match(foo);
if (match.Success)
Console.WriteLine(match.Groups[1].Value);
}
}