Строка 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();