2014-08-02 3 views
4

Я получаю ответ от сервера следующим образом: «Имя пользователя | Имя | AccountType | Организация». Есть ли способ использовать разделители «|» в качестве разделителей и получить каждую переменную отдельно. Я предполагаю, что мне придется использовать цикл for.Как использовать символ как разделитель в строке

+0

Если ответ верный, вы должны принять его, используя галочку рядом с ним (так работает этот сайт). –

ответ

2

Да, как и любой другой String.split.

Вот краткий пример:

public class Stack 
{ 
public static void main(String[] args) 
{ 
    String test = "Username|Name|AccountType|Organization"; 
    String[] token = test.split("\\|"); 

    System.out.println(test); 
    System.out.println(); 

    for(int i=0; i<token.length; i++) 
    System.out.println(token[i]); 

    System.out.println(); 
} 
} 

Выход будет следующим;

Username|Name|AccountType|Organization 

Username 
Name 
AccountType 
Organization 
4

Вы можете использовать String.split с |. Он вернет массив String[]. Например

String test = "Username|Name|AccountType|Organization"; 
for (String token : test.split("\\|")) { 
    Log.i("TEST", token); 
} 
3

Если вы используете Guava's Splitter class:

List<String> tokens = Splitter.on("|").split("Username|Name|AccountType|Organization"); 

С Apache Commons' StringUtils class:

String[] tokens = StringUtils.split("Username|Name|AccountType|Organization", '|'); 

И plain Java Strings:

String[] test = "Username|Name|AccountType|Organization".split("\\|"); 

PS: Нет, ты не нужно, чтобы Guava или Apache Commons просто разделили строку. Но они приносят много действительно полезных вещей, которые сделают ваш код более надежным. Guava - одна из библиотек, которые я включаю в любой проект.

Смежные вопросы