listView中的String.split问题

时间:2013-05-29 21:10:20

标签: android arrays string list listview

我试图将文本文件的内容读入列表视图。 文本文件的格式为

Item 1
Subitem1 | Subitem2 | Subitem3

Item 2 
Subitem1 | Subitem 2 | Subitem3

Item 3
Subitem1 | Subitem2 | Subitem3

这是我使用的逻辑。 搜索特定项目的文件

  while(scanner.hasNextLine())
  {    
     line=scanner.next line();
     if(query.equals(line))
     line = scanner.next line();
  }
  return line;

获取返回的行值并将其拆分为String []

  String[] myArray = returnedLine.split("|");

将其转换为列表视图的列表

  List<String> disp = new ArrayList<String>();
  disp = Arrays.as list(myArray);

代码有效。但是,列表视图的内容看起来很奇怪,每个字母表都在一个新的listView行中。 S在一行上,一个是下一行,后面是b,I,t,e,m和1.所有在不同的行上

1 个答案:

答案 0 :(得分:3)

String.split()函数采用正则表达式而不是字符,而管道是正则表达式中的特殊字符。试试这个:

String[] myArray = returnedLine.split("\\|");

编辑:当flightplanner指针退出时,你的while应该看起来像这样:

while(scanner.hasNextLine())
{    
    line=scanner.next line();
    if(query.equals(line)) {
        line=scanner.next line();
        break;
    }
}