2012-11-18 30 views
0

閱讀文本文件中的數據我有這樣的代碼:問題在Java中

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

當變量類別和值沒有一個逗號(,)它的工作原理,但在變量值的數值確實含有逗號。是否有一種方法可以在不使用逗號的情況下分割索引?

+0

您將需要使用不同的分隔符的值,如果值本身包含您爲使用逗號您的分隔符。 – dinukadev

回答

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

不是100%肯定,但你不能只是做 String datavalue [] = str.split("--"); 什麼?

示例文件:

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

輸出:

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

+0

-1,不確定,或者 –

+0

你能給我這個文件的樣本輸入格式嗎? –

+0

修正了答案。 – user1729831

0

當數據 '' 它通常被稱爲CSV文件。 OpenCSV是相當常用的庫來處理它。格式看起來很簡單,但它有怪癖。對於一些細節

0

wikipedia如果我理解正確你:

String str = "category,vvvv,vvv"; 
    int i = str.indexOf(','); 
    String category = str.substring(0, i); 
    String value = str.substring(i + 1); 
0

分裂()使用正則表達式。 如果讀者代碼工作完美,做

str.split("\\,");