在Java中读取文本文件数据的问题
我有以下代码:在Java中读取文本文件数据的问题,java,Java,我有以下代码: BufferedReader br=newbufferedreader(newfilereader(“userdetails.txt”); 字符串str; ArrayList stringList=新建ArrayList(); 而((str=br.readLine())!=null){ 字符串datavalue[]=str.split(“,”); 字符串类别=数据值[0]; 字符串值=数据值[1]; stringList.add(类别); stringList.add(值); }
BufferedReader br=newbufferedreader(newfilereader(“userdetails.txt”);
字符串str;
ArrayList stringList=新建ArrayList();
而((str=br.readLine())!=null){
字符串datavalue[]=str.split(“,”);
字符串类别=数据值[0];
字符串值=数据值[1];
stringList.add(类别);
stringList.add(值);
}
br.close();
当变量类别和值没有逗号(,)时,它可以工作,但是变量值中的值包含逗号。有没有一种方法可以不使用逗号拆分的索引?不是100%确定,但您不能这样做吗
stringdatavalue[]=str.split(“--”)代码>
还是什么
示例文件:
x,y,z--123--你好,世界
输出:
“x,y,z”,
"123",
“Hello World”
当数据有“,”时,通常称为CSV文件。是一个相当常用的库来处理它。格式看起来很简单,但也有一些奇怪之处。如果我理解正确,请参阅了解一些详细信息:
String str = "category,vvvv,vvv";
int i = str.indexOf(',');
String category = str.substring(0, i);
String value = str.substring(i + 1);
split()使用正则表达式。
如果读卡器代码工作正常,请执行以下操作
str.split("\\,");
解决方案如下所示:
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();
BufferedReader br=newbufferedreader(newfilereader(“userdetails.txt”);
字符串str;
ArrayList stringList=新建ArrayList();
而((str=br.readLine())!=null){
int firstIndexOfComma=str.indexOf(',');
字符串类别=str.substring(0,firstIndexOfComma);
字符串值=str.substring(firstIndexOfComma+1);
stringList.add(类别);
stringList.add(值);
系统输出打印项次(类别+“”+值);
}
br.close();
如果值本身包含用作分隔符的逗号,则需要为值使用不同的分隔符。