Удаление новой строки из строки - PullRequest
3 голосов
/ 26 июля 2011

Вот моя проблема: У меня есть база данных, и она полна эпизодов телешоу. Один столбец обозначает номер эпизода. Я хочу отобразить эпизоды в виде списка:

  • Эпизод 1
  • Эпизод 2
  • Эпизод 3
  • и т.д.

Я использую свой собственный класс адаптера, который расширяет SimpleCursorAdapter для этого ... Так как у меня были ошибки форматирования, я использую Android.R.layout.simple_list_item_1 и Android.R.id.text1

По сути, единственная причина, по которой у меня есть специальный адаптер, - это то, что я могу сделать что-то вроде этого:

textView.setText("Episode " + cursor.getString("column_for_episode_number");

Проблема в том, что я получаю список, который выглядит следующим образом:

  • Эпизод
  • 1
  • Эпизод
  • 2
  • Эпизод
  • 3

Когда я пытаюсь что-то вроде этого (которое работало в другой части моего кода):

String text = "Episode " + cursor.getString("blah");
text = text.replaceAll("\\n","");

Я получаю точно такой же вывод списка: (

Почему бы не использовать создание пользовательского представления с двумя текстовыми полями рядом друг с другом? Мне трудно заставить это выглядеть красиво: /

Ответы [ 7 ]

4 голосов
/ 26 июля 2011

Проверьте, есть ли новая строка на biggining, прежде чем заменить и выполните тот же тест снова

for(int i=0; cursor.getString("blah").length()-1; i++)
{

   if(cursor.getString("blah").charAt(i)=='\\n')  <-- use the one constant for line separator i fogot what was the name
    { 
      Log.i("NEW LINE?", "YES, WE HAVE");
    }

}

Или используйте .contains("\n"); метод

Проверьте XML для ширины просмотраа также.

Почему вы используете getString(), когда выбираете целое число?Используйте getInt(), а затем Integer.toString(theint) при настройке в режиме просмотра текста.

3 голосов
/ 12 декабря 2014
text.replaceAll(System.getProperty("line.separator"), ""));
2 голосов
/ 07 ноября 2016

В вашем коде есть ошибка.Используйте «\ n» вместо «\\ n»

String myString = "a string\n with new line"
myString = myString.replaceAll("\n","");
Log.d("myString",myString);
0 голосов
/ 03 ноября 2017

Это может помочь вам:

response = response.replaceAll("\\s+","");
0 голосов
/ 08 августа 2014

это сработало для моего (на android 4.4):

(где body - строка с новой строкой, введенной из представления EditText на телефоне)

for (int i=0; i<body.length(); i++) {
    if (body.charAt(i) == '\n' || body.charAt(i) == '\t') {
        body = body.substring(0, i) + " " + body.substring(i+1, body.length());                         
    }
}
0 голосов
/ 18 октября 2013

вы пробовали cursor.getString ("бла"). Trim ()

0 голосов
/ 26 июля 2011

Похоже, вы сталкиваетесь с проблемами переноса, а не с символами новой строки. Изменить это:

String text = "Episode " + cursor.getString("blah");

К этому:

String text = "Episode" + cursor.getString("blah");

И посмотри, не изменит ли это вывод. Разместите свой макет xml, пожалуйста?

...