Сплит-система Android

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

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

 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(); 

Есть и другие способы сделать это. Например, вы можете использовать класс 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 

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

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

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

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

 String data = "1,Diego Maradona,Footballer,Argentina"; String[] items = data.split(","); for (String item : items) { System.out.println("item = " + item); } 
  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(); 

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

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

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

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