从磁盘读取文本文档,用逗号隔开,但是要求双引号内的逗号不能隔开,放到ArrayList中输出
2012-11-19 16:56
309 查看
程序如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Demo{
public static List<String> splitString(String str){
List<String> list=new ArrayList<String>();
int i=1;
String[] strs =str.split("\"");
for(int m=0;m<strs.length;m++){
if(strs[m].equals("")){
continue;
}
if(m==i){ //字符串一定出现在奇数个上
String st="\""+strs[m]+"\"";
list.add(st);
i+=2;
}else{
String stss=strs[m];
String[] ss=stss.split(",");
for(int n=0;n<ss.length;n++){
if(!ss
.equals("")){
list.add(ss
);
}
}
}
}
return list;
}
public static void main(String[] args) throws IOException {
String Dir="D:/input.txt";
File sampleDir=new File(Dir);
FileReader samReader = new FileReader(sampleDir);
BufferedReader samBR = new BufferedReader(samReader);
String word=new String();
StringBuffer words =new StringBuffer();
ArrayList arr =new ArrayList();
while((word = samBR.readLine())!=null){
words.append(word);
}
String wordss=words.substring(0);
List<String> list=splitString(wordss);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
运行结果:
a
b
"c,d"
e
fg
h
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Demo{
public static List<String> splitString(String str){
List<String> list=new ArrayList<String>();
int i=1;
String[] strs =str.split("\"");
for(int m=0;m<strs.length;m++){
if(strs[m].equals("")){
continue;
}
if(m==i){ //字符串一定出现在奇数个上
String st="\""+strs[m]+"\"";
list.add(st);
i+=2;
}else{
String stss=strs[m];
String[] ss=stss.split(",");
for(int n=0;n<ss.length;n++){
if(!ss
.equals("")){
list.add(ss
);
}
}
}
}
return list;
}
public static void main(String[] args) throws IOException {
String Dir="D:/input.txt";
File sampleDir=new File(Dir);
FileReader samReader = new FileReader(sampleDir);
BufferedReader samBR = new BufferedReader(samReader);
String word=new String();
StringBuffer words =new StringBuffer();
ArrayList arr =new ArrayList();
while((word = samBR.readLine())!=null){
words.append(word);
}
String wordss=words.substring(0);
List<String> list=splitString(wordss);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
运行结果:
a
b
"c,d"
e
fg
h
相关文章推荐
- 从磁盘读取文本文件内容,用逗号隔开,用ArrayList输出
- 读取一个文本文档,例如有1~10行,要求按10~1行的顺序输出.并保存予原文件
- 三个数排序。要求输入三个整数,按逗号隔开,把它们从小到大排列,输出结果用空格隔开。
- 要求通过java读取文本并把文本中的每一行后面的三个成绩相加, 最后按从大到小的顺序输出到另一个文本文件中.
- Linux系统不能读取NTFS格式磁盘的解决方案
- 读取电脑所有磁盘文件并输出路径
- C/C++中的输入与输出及如何读取一行文本
- 读取文本 若有重复行则不输出
- 将竖的形式的数字转化为以逗号隔开的形式,要求只筛选出不重复的形式。
- 读取一个格式良好的XML文档(只能包含标记和内容),并按层次编号并输出。
- 笔试题:输入一串数字,以逗号隔开,将数字排序后输出
- 输出文本信息在U3D读取切换SHADER的SCRIPT测试
- java 按顺序 列间用逗号隔开 逐行写入txt文件(使用反射、linkedHashMap实现有序输出)
- ArrayList集合中的字符串数据存储到文本文件|文本文件中读取数据到集合
- // 编写一个程序,在E盘下创建一个abc.txt的文本文档,通过输出流在文档内添加数据,然后在把abc.txt复制到F盘下
- WinCE的C#中使用StreamReader 来读取TXT文档,读取文本文档。
- 不能新建文本(右键菜单没有新建文本文档)文档的解决方法
- 通过设置项目输出XML文档,来强制要求写注释
- python读取文本文档处理不可见字符
- 把文本文档中的字符按倒叙输出