从字符串中删除换行符

时间:2011-07-26 01:25:26

标签: android listview cursor textview newline

这是我的问题: 我有一个数据库,它充满了电视节目的剧集。一列表示剧集编号。我想在这样的列表中显示剧集:

  • 第1集
  • 第2集
  • 第3集

我正在使用我自己的适配器类来扩展SimpleCursorAdapter来执行此操作... 由于我遇到格式错误,因此我使用Android.R.layout.simple_list_item_1Android.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 个答案:

答案 0 :(得分:4)

在更换之前检查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的textview宽度。

为什么在获取整数时使用getString()?在textview中进行设置时,请使用getInt()然后Integer.toString(theint)

答案 1 :(得分:3)

text.replaceAll(System.getProperty("line.separator"), ""));

答案 2 :(得分:2)

您的代码中存在错误。使用“\ n”而不是“\\ n”

String myString = "a string\n with new line"
myString = myString.replaceAll("\n","");
Log.d("myString",myString);

答案 3 :(得分:0)

听起来你正在打包问题而不是换行问题。改变这个:

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

对此:

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

看看是否会改变输出。请发布你的布局xml?

答案 4 :(得分:0)

这适用于我的(在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());                         
    }
}

答案 5 :(得分:0)

这可以帮到你:

response = response.replaceAll("\\s+","");

答案 6 :(得分:-1)

你试过试试吗?         cursor.getString( “等等”)。修剪()