Android Split string - PullRequest
       1

Android Split string

206 голосов
/ 17 сентября 2010

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

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

Ответы [ 5 ]

570 голосов
/ 17 сентября 2010
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
82 голосов
/ 21 мая 2012

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

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

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

47 голосов
/ 17 марта 2013

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

String data = "1,Diego Maradona,Footballer,Argentina";
String[] items = data.split(",");
for (String item : items)
{
    System.out.println("item = " + item);
}
22 голосов
/ 04 сентября 2014
     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();
22 голосов
/ 04 сентября 2013

Возможно, вы захотите рассмотреть метод Android * TextUtils.split () .

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...