从字符串中删除换行符

问题描述 投票:3回答:7

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

  • 第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","");

我得到完全相同的列表输出:(

为什么我不使用创建两个文本框彼此相邻的自定义视图?让我看起来很漂亮很难:/

android listview cursor textview newline
7个回答
3
投票

在更换之前检查开头是否有新行,然后再次进行相同的测试

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)


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

2
投票

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

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

0
投票

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

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

对此:

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

并查看是否会改变输出。发布你的布局xml好吗?


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());                         
    }
}

0
投票

这可以帮助你:

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

-1
投票

你试过cursor.getString(“blah”)。trim()

© www.soinside.com 2019 - 2024. All rights reserved.