Строка Android Split

У меня есть строка под названием CurrentString и находится в форме чего-то вроде этого "Fruit: they taste good".
Я хотел бы разделить CurrentString с помощью : в качестве разделителя. Таким образом, слово "Fruit" будет разделено на собственную строку, а "they taste good" будет другая строка.
И тогда я просто хотел бы использовать SetText() из 2 разных TextViews для отображения этой строки.

Какой был бы лучший способ приблизиться к этому?

Ответ 1

String currentString = "Fruit: they taste good";
String[] separated = currentString.split(":");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"

Вы можете удалить пробел во второй строке:

separated[1] = separated[1].trim();

Если вы хотите разбить строку специальным символом, таким как точка (.), Вы должны использовать escape-символ\перед точкой

Пример:

String currentString = "Fruit: they taste good.very nice actually";
String[] separated = currentString.split("\\.");
separated[0]; // this will contain "Fruit: they taste good"
separated[1]; // this will contain "very nice actually"

Есть и другие способы сделать это. Например, вы можете использовать класс StringTokenizer (из java.util):

StringTokenizer tokens = new StringTokenizer(currentString, ":");
String first = tokens.nextToken();// this will contain "Fruit"
String second = tokens.nextToken();// this will contain " they taste good"
// in the case above I assumed the string has always that syntax (foo: bar)
// but you may want to check if there are tokens or not using the hasMoreTokens method

Ответ 2

.split будет работать, но он использует регулярные выражения. В этом примере это было бы (украсть у Кристиана):

String[] separated = CurrentString.split("\\:");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"

Кроме того, это произошло: Android не работает правильно

Ответ 3

андроидальная разделительная строка по запятой

String data = "1,Diego Maradona,Footballer,Argentina";
String[] items = data.split(",");
for (String item : items)
{
    System.out.println("item = " + item);
}

Ответ 4

Вы также можете рассмотреть специфический для Android метод TextUtils.split().

Разница между TextUtils.split() и String.split() документирована с помощью TextUtils.split():

String.split() возвращает [''], когда разделяемая строка пуста. Это возвращает []. Это не удаляет пустые строки из результата.

Я считаю это более естественным поведением. По сути, TextUtils.split() - это всего лишь тонкая оболочка для String.split(), специально посвященная случаю с пустой строкой. Код метода на самом деле довольно прост.

Ответ 5

     String s = "having Community Portal|Help Desk|Local Embassy|Reference Desk|Site News";
     StringTokenizer st = new StringTokenizer(s, "|");
        String community = st.nextToken();
        String helpDesk = st.nextToken(); 
        String localEmbassy = st.nextToken();
        String referenceDesk = st.nextToken();
        String siteNews = st.nextToken();