java 读取txt去掉重复和空行 假如现在我E盘上有个txt文件通过流把他读出来然后去掉所有相应文字的重复和空行。假如文件是这样的:你好 再见 你好大概就是这个意思,去掉重复和空行。感谢各位大侠 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Set。每次读出一行,然后用正则表达式判断是不是空行。如果不是空行,就放到Set里面。都读取完毕后,再把Set里面的内容输出到文件中就行了。 额 我也学到这。目前解决方式是:char[]ch=new char[1024]; ---Reader reader=new FileReader("f:/b.txt");int length=reader.read(ch); length=reader.read(ch,0,reader.read(ch));System.out.println("长度:"+length);这个长度就是文件字符的长度如果要去掉空格。也可以直接用if(xxx!=' '){}这样也行 我也不知道这个文件是多大啊,咋定义,大小:9.45 KB (9,679 字节) 占用空间:12.0 KB (12,288 字节) 这样应该能满足你要求吧public static void main(String[] args) { Set<String> values = new HashSet<String>(); try { BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt"))); String value = ""; while((value =bf.readLine())!=null){ value = value.trim(); if(!value.equals("")){ values.add(value); } } for (String string : values) { System.out.println(string); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } FileInputStream fis=null; InputStreamReader isr=null; BufferedReader br=null; String ss=""; String ssd=""; try { fis=new FileInputStream("E:/a.txt"); br=new BufferedReader(new InputStreamReader(fis)); String str=null; Set set=new LinkedHashSet(); try { while((str=br.readLine())!=null) { char ch[]=str.toCharArray(); if(ch[0]!=ch[ch.length-1]) { for(int i=0;i<ch.length;i++) { ss=ch[i]+""; set.add(ss); } } } Iterator it =set.iterator(); while(it.hasNext()) { ssd+=it.next(); } System.out.print(ssd); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } 一点失误,用set顺序会变,改了下public static void main(String[] args) { List<String> values = new ArrayList<String>(); Map<String, Boolean> map = new HashMap<String, Boolean>(); try { BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt"))); String value = ""; while((value =bf.readLine())!=null){ value = value.trim(); if(!value.equals("")){ if(map.get(value)==null){ values.add(value); map.put(value, true); } } } for (String string : values) { System.out.println(string); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 朋友,没泛型就去掉就是了嘛import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;public class Test { public static void main(String[] args) { List values = new ArrayList(); Map map = new HashMap(); try { BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt"))); String value = ""; while((value =bf.readLine())!=null){ value = value.trim(); if(!value.equals("")){ if(map.get(value)==null){ values.add(value); map.put(value, true); } } } for (Object string : values) { System.out.println(string); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}没有问题 我开始做的麻烦咯,这样才最好Set values = new LinkedHashSet(); try { BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt"))); String value = ""; while((value =bf.readLine())!=null){ value = value.trim(); if(!value.equals("")){ values.add(value); } } for (Object string : values) { System.out.println(string); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 大侠这个for (Object string : values) 是1.5的,我是1.4 朋友,你们老师有教过Iterator it = values.iterator(); while(it.hasNext()){ System.out.println(it.next()); }这样遍历set集合吧 楼主,自己做才有提高啊,做出来了才有成就感嘛。大家提供一个思路就可以了。这本来就很简单的。定义一个空mapfor(){trim去掉空格与空字符串判断,如果是就continue,否则加入map中。//为啥用map,因为它自动判断重复。}现在map里就是你想得到的。 亚麻的。我无语import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.util.Iterator;import java.util.LinkedHashSet;import java.util.Set;public class Test { public static void main(String[] args) { Set values = new LinkedHashSet(); try { BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt")));//文件的位置 String value = ""; while((value =bf.readLine())!=null){ value = value.trim(); if(!value.equals("")){ values.add(value); } } Iterator it = values.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}我同意13楼的,代码是越敲才越会,多练练,这样才能提高 仅供参考! public static void main(String[] args) { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader("D:\\workspace\\test\\src\\test.txt")); Set set = new TreeSet(); while(true){ String line = reader.readLine(); if(line == null){ break; }else if(line.matches("\\s*")){ continue; }else{ set.add(line); } } Iterator iterator = set.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ if(reader != null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } 不能用set了,必须用纯算法手工的 那就这样吧。用list,这样也算是现成的吗? public static void main(String[] args) { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader("D:\\workspace\\test\\src\\test.txt")); List<String> lines = new ArrayList<String>(); while(true){ String line = reader.readLine(); if(line == null){ break; }else if(line.matches("\\s*")){ continue; }else{ if(lines.indexOf(line) == -1){ lines.add(line); } } } for(int i = 0; i < lines.size(); i++){ System.out.println(lines.get(i)); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ if(reader != null){ try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } String str(String source){StringBuilder result=new StringBuilder();boolean number=true;for(char the:source.toCharArray()){ if(the!='\n'){ number=true; result.appaned(the);}else if(number){ result.appaned(the); number=false;}}} Struts 标签输出日期,怎么设置输出格式 java控制文件问题 急~ java敏感词汇分析 买java书籍的疑问??? 帮忙写一个java程序 请问能保存成dbf格式吗? JAVA中有没有Web组件,就是可以显示网页的那种控件 下载了一个Java编写的程序,速度巨慢,应该怎么处理,才能流畅运行,而我的计算机还算不错! 对象的参数传递问题 如何用java显示一个html 文件,象IE一样??? htmlparser问题 请问如何利用当前运行的一个java程序去执行另外一个java程序
目前解决方式是:
char[]ch=new char[1024]; ---
Reader reader=new FileReader("f:/b.txt");
int length=reader.read(ch);
length=reader.read(ch,0,reader.read(ch));
System.out.println("长度:"+length);
这个长度就是文件字符的长度如果要去掉空格。也可以直接用
if(xxx!=' '){}
这样也行
public static void main(String[] args) {
Set<String> values = new HashSet<String>();
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt")));
String value = "";
while((value =bf.readLine())!=null){
value = value.trim();
if(!value.equals("")){
values.add(value);
}
}
for (String string : values) {
System.out.println(string);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
FileInputStream fis=null;
InputStreamReader isr=null;
BufferedReader br=null;
String ss="";
String ssd="";
try {
fis=new FileInputStream("E:/a.txt");
br=new BufferedReader(new InputStreamReader(fis));
String str=null;
Set set=new LinkedHashSet();
try {
while((str=br.readLine())!=null)
{
char ch[]=str.toCharArray();
if(ch[0]!=ch[ch.length-1])
{
for(int i=0;i<ch.length;i++)
{
ss=ch[i]+"";
set.add(ss);
}
}
}
Iterator it =set.iterator();
while(it.hasNext())
{
ssd+=it.next();
}
System.out.print(ssd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
public static void main(String[] args) {
List<String> values = new ArrayList<String>();
Map<String, Boolean> map = new HashMap<String, Boolean>();
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt")));
String value = "";
while((value =bf.readLine())!=null){
value = value.trim();
if(!value.equals("")){
if(map.get(value)==null){
values.add(value);
map.put(value, true);
}
}
}
for (String string : values) {
System.out.println(string);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Test {
public static void main(String[] args) {
List values = new ArrayList();
Map map = new HashMap();
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt")));
String value = "";
while((value =bf.readLine())!=null){
value = value.trim();
if(!value.equals("")){
if(map.get(value)==null){
values.add(value);
map.put(value, true);
}
}
}
for (Object string : values) {
System.out.println(string);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
没有问题
Set values = new LinkedHashSet();
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt")));
String value = "";
while((value =bf.readLine())!=null){
value = value.trim();
if(!value.equals("")){
values.add(value);
}
}
for (Object string : values) {
System.out.println(string);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
大侠这个for (Object string : values) 是1.5的,我是1.4
Iterator it = values.iterator();
while(it.hasNext()){
System.out.println(it.next());
}这样遍历set集合吧
for(){
trim去掉空格
与空字符串判断,如果是就continue,否则加入map中。
//为啥用map,因为它自动判断重复。
}
现在map里就是你想得到的。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set values = new LinkedHashSet();
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("d:/d.txt")));//文件的位置
String value = "";
while((value =bf.readLine())!=null){
value = value.trim();
if(!value.equals("")){
values.add(value);
}
}
Iterator it = values.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }}
我同意13楼的,代码是越敲才越会,多练练,这样才能提高
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("D:\\workspace\\test\\src\\test.txt"));
Set set = new TreeSet();
while(true){
String line = reader.readLine();
if(line == null){
break;
}else if(line.matches("\\s*")){
continue;
}else{
set.add(line);
}
}
Iterator iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("D:\\workspace\\test\\src\\test.txt"));
List<String> lines = new ArrayList<String>();
while(true){
String line = reader.readLine();
if(line == null){
break;
}else if(line.matches("\\s*")){
continue;
}else{
if(lines.indexOf(line) == -1){
lines.add(line);
}
}
}
for(int i = 0; i < lines.size(); i++){
System.out.println(lines.get(i));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
StringBuilder result=new StringBuilder();
boolean number=true;
for(char the:source.toCharArray()){
if(the!='\n'){
number=true;
result.appaned(the);
}else if(number){
result.appaned(the);
number=false;
}
}
}