Поиск по этому блогу

воскресенье, 16 декабря 2012 г.

Как считать строку String, используя метод readLine() класса BufferedReader


В GXT в ячейке таблицы Grid нужно было сделать так, чтобы строка, приходящая из таблицы,
отображаласть не в одну строку, а в несколько. Строка в таблице хранилась с использованием специальных символов переноса строки и переноса каретки \r\n. Однако, когда данная строка загружалась  в таблицу, она все равно отображалась как одна строка.


Строка, в которой нужно все переводы строк заменить на теги <br/> выглядит так
Timeline & Turnup Comments:  '8:20 tech called in for ttu \r\n8:21 reviewed notes\r\n8:21 tested bb to ensure working properly\r\n8:25 all ping checks passed\r\n8:28 tech configuring voip\r\n8:31 no number in the star2star portal.\r\n8:36 spoke with christina with star2star she stated site had still not been worked out in the provisioning department.\r\n8:39 emailing idv orders\r\n9:00 emailing anne keefer\r\n8:37 still waiting for response

Нужно считать строку построчно, то есть считать отдельно все элементы разделенные символами \r\n. Для этого будем использовать класс BufferedReader и его метод readLine(),
которым будем из строки считывать элементы. Для формирования новой строки будем использовать класс StringBuilder. Каждую считанную строку-часть будем добавлять к объекту StringBuilder, а потом будем добавлять тег <br/> . На выходе получим строку такую же где заместо символов перевода строки и возврата каретки будут вставлены теги <br/>.

Такая строка отобразиться в ячейке таблицы в несколько строчек, а не в одну.

// получаем исходную строку с символами \r\n
String str = model.getJournalNote();
// создаем объект StringBuilder для формирования новой строки
StringBuilder sb = new StringBuilder();
// сюда будем считывать части исходной строки разделенные символами \r\n
String line;
BufferedReader reader = new BufferedReader(new StringReader(str));
try {
  // считываем пока в строке есть содержимое
  while ((line = reader.readLine()) != null) {
  //к каждой считанной подстроке добавляем тег <br/>   
    sb.append(line + "<br/>");
  }
} catch (IOException e) {
  e.printStackTrace();
}
// получаем новую строку из StringBuilder'a
String newStr = sb.toString();

На выходе получаем строку с тегами <br/> вместо \r\n.

Timeline & Turnup Comments:  '8:20 tech called in for ttu <br/>8:21 reviewed notes<br/>8:21 tested bb to ensure working properly<br/>8:25 all ping checks passed<br/>8:28 tech configuring voip<br/>8:31 no number in the star2star portal.<br/>8:36 spoke with christina with star2star she stated site had still not been worked out in the provisioning department.<br/>8:39 emailing idv orders<br/>9:00 emailing anne keefer<br/>8:37 still waiting for response<br/>



Комментариев нет:

Отправить комментарий