Строка C# разделяется

Я сходил с ума, потому что ни один из ответов здесь не работал для меня.

Чтобы показать меню, я должен был вызвать: setSupportActionBar(toolbar)

Готово!

Примечание: если ваш вид toolbar не совпадает макет вы не можете использовать вызов выше непосредственно из вашего класса деятельности, в этом случае вам нужно получить это действие из вашего класса фрагмента, а затем вызвать setSupportActionBar(toolbar). Помните: ваш класс активности должен расширять AppCompatActivity.

Надеюсь, что этот ответ поможет вам.

5
задан Goober 23 June 2009 в 17:45
поделиться

8 ответов

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

var str = "google.com 220 USD 3d 19h";
var domain = str.Split(' ')[0];           // google.com
var tld = domain.Substring(domain.IndexOf('.')) // .com
8
ответ дан 18 December 2019 в 12:01
поделиться

хорошо, если вы можете предположить, что пространство является разделителем, это так же просто, как

string full

char [] delimiterChars = {''}; // используется, чтобы вы могли указать больше разделителей строка [] words = full.Split (delimiterChars, 1); // разделяет только одно слово пробелом

string result = words [0] // вот как вы можете получить к нему доступ

1
ответ дан 18 December 2019 в 12:01
поделиться

Альтернативный вариант

string str = "google.com 220 USD 3d 19h";
string match = ".com";
string dotcomportion = str.Substring(str.IndexOf(match), match.Length);
3
ответ дан 18 December 2019 в 12:01
поделиться

Если под извлечением вы подразумеваете удаление, вы можете использовать метод Replace

var result = str.Replace (". Com", "");

1
ответ дан 18 December 2019 в 12:01
поделиться

Я знаю, что вы спрашивали об использовании метода 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 );
1
ответ дан 18 December 2019 в 12:01
поделиться

Предполагая, что вам нужен домен верхнего уровня:

string str = "google.com 220 USD 3d 19h";
string tld = str.Substring(str.LastIndexOf('.')).Split(' ')[0];
Console.WriteLine(tld);

Вывод:

.com

При этом учитываются субдомены.

1
ответ дан 18 December 2019 в 12:01
поделиться

использование 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));
0
ответ дан 18 December 2019 в 12:01
поделиться

Я не могу придумать причину, по которой вы хотели бы использовать 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);
    }
}
0
ответ дан 18 December 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: