Как отладить разделение строки Java, которое возвращает строку со значением, но без содержимого? - PullRequest
0 голосов
/ 05 февраля 2012

Я пытался использовать regEx, чтобы разделить строку, которая дает мне массив с 2 элементами в нем. Я действительно заинтересован только в первом элементе, однако отладчик сообщает, что в нем нет ничего (выделено желтым кружком на скриншоте), но есть «значение» элемента, которому я соответствовал в своем регулярном выражении. (выделено синим на скриншоте)

enter image description here

Как программно добраться до значения?

Вот код, который я использую:

//Handle Related description by stripping off data relating to it
        String[] descriptionShortened=jsonObject.getString("description").split("^.*[^Related]");
        String descriptionintro=descriptionShortened[0].toString();


        descriptionList.add(descriptionintro);

1 Ответ

2 голосов
/ 06 февраля 2012

[^ Related] Соответствует a Класс символов , который соответствует всему, кроме букв R, e, l, a, t, e, d. Ваше регулярное выражение будет соответствовать чему угодно, и поэтому первый элемент массива пуст. Если вы хотите получить строку, в которой есть все до строки «Related», просто вызовите

descriptionShortened = jsonObject.getString("description").split("Related");

Все перед строкой "Related" будет в первом элементе в массиве, который возвращается. Например, если jsonObject.getString("description") возвращает "abcdRelatedefgh", приведенный выше код вернет массив { "abcd", "efgh" }.

Что касается вашего первого вопроса и снимка экрана, эта строка действительно пуста. Значение является указателем, но оно указывает на пустое пространство. Каждая строка имеет поле значения, но это не значит, что оно не пустое.

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