0

我有这个代码:

  BufferedReader br =new BufferedReader(new FileReader("userdetails.txt"));
     String str;
     ArrayList<String> stringList = new ArrayList<String>();
     while ((str=br.readLine())!=null){
        String datavalue [] = str.split(",");
        String category = datavalue[0];
        String value = datavalue[1];
        stringList.add(category);
        stringList.add(value);
     }
     br.close();

当变量类别和值没有逗号(,)时它可以工作,但是变量值中的值确实包含逗号。有没有一种方法可以在不使用逗号的情况下拆分索引?

4

5 回答 5

0

当数据有“,”时,通常称为 CSV 文件。OpenCSV是相当常用的库来处理它。格式看起来很简单,但它有它的怪癖。有关详细信息,请参阅维基百科

于 2012-11-18T16:48:52.627 回答
0

如果我理解正确:

    String str = "category,vvvv,vvv";
    int i = str.indexOf(',');
    String category = str.substring(0, i);
    String value = str.substring(i + 1);
于 2012-11-18T16:49:16.773 回答
0

split() 使用正则表达式。如果阅读器代码运行良好,请执行

str.split("\\,");
于 2012-11-18T16:57:39.460 回答
0

解决方案如下:

    BufferedReader br =new BufferedReader(new FileReader("userdetails.txt"));
    String str;
    ArrayList<String> stringList = new ArrayList<String>();
    while ((str=br.readLine())!=null){
        int firstIndexOfComma = str.indexOf(',');
        String category = str.substring(0, firstIndexOfComma);
        String value = str.substring(firstIndexOfComma + 1);
        stringList.add(category);
        stringList.add(value);
        System.out.println(category+" "+value);
    }
    br.close();
于 2012-11-18T17:26:26.720 回答
-2

不是 100% 确定,但你不能做些 String datavalue [] = str.split("--"); 什么吗?

示例文件:

x,y,z--123--Hello World

输出:

"x,y,z", "123", "Hello World"

于 2012-11-18T16:28:31.127 回答