Разбор строк массивов - PullRequest
       6

Разбор строк массивов

1 голос
/ 14 октября 2010

У меня есть такая строка.

{"type":"broad","Text":"cat"},{"type":"broad","Text":"dog"}

String[] keyString = getParts({"type":"broad","Text":"cat"},{"type":"broad","Text":"dog"});
for(String part : keyString){
    some code here which gives like this 
    String text = "cat";
    String type = "broad";
}

Может кто-нибудь сказать мне, как я могу получить текст и печатать отдельно в строке

public static String[] getParts(String keyString) {
  if(keyString.isEmpty()) 
   return null;
  String[] parts  = keyString.split(",");
  return parts;
 }

Или есть какие-нибудь простые способыполучить соответствующие строки.

Ответы [ 2 ]

3 голосов
/ 14 октября 2010

Это похоже на JSON, поэтому, если у вас есть / создаете класс с полями type и Text, вы можете использовать gson или Джексона для анализа строки и получения объекты этого класса. (Вы можете разделить строку с помощью split(",") и проанализировать каждую часть как отдельную строку JSON)

2 голосов
/ 14 октября 2010

Это должно сработать:

import java.util.regex.*;

public class Test {

    public static void main(String[] args) {

        String input = "{\"type\":\"broad\",\"Text\":\"cat\"}," +
                       "{\"type\":\"broad\",\"Text\":\"dog\"}";

        System.out.println(input);

        Pattern partPattern = Pattern.compile("\\{([^}]*)\\}");
        Pattern typePattern = Pattern.compile("\"type\":\"([^\"]*)\"");
        Pattern textPattern = Pattern.compile("\"Text\":\"([^\"]*)\"");

        Matcher m = partPattern.matcher(input);
        while (m.find()) {
            Matcher typeMatcher = typePattern.matcher(m.group(1));
            Matcher textMatcher = textPattern.matcher(m.group(1));

            String type = typeMatcher.find() ? typeMatcher.group(1) : "n/a";
            String text = textMatcher.find() ? textMatcher.group(1) : "n/a";

            System.out.println(type + ", " + text);
        }
    }
}

Вывод ( ideone link ):

{"type":"broad","Text":"cat"},{"type":"broad","Text":"dog"}
broad, cat
broad, dog
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...