【问题描述】
编写一个程序,从一个文件中读入单词(即:以空格分隔的字符串),并对单词进行排序,删除重复出现的单词,然后将结果输出到另一个文件中。
【输入形式】从一个文件sort.in中读入单词。
【输出形式】对单词进行排序,删除重复出现的单词,然后将结果输出到文件sort.out中。
【输入样例】假如sort.in文件内容如下:
rrr sss aaa bbb ccc ddf aaa dd
【输出样例】sort.out文件内容为:
aaa bbb ccc dd ddf rrr sss
【样例说明】
读入文件sort.in,做适当的排序,并删除重复出现的单词,输出到文件sort.out
参考代码:
java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader ifile = new BufferedReader(new FileReader("sort.in"));
BufferedWriter ofile = new BufferedWriter(new FileWriter("sort.out"));
Set<String> words = new TreeSet<String>();
Scanner sc = new Scanner(System.in);
String s;
int flag=0;
String word="";
while((s=ifile.readLine())!=null) {
s = s.toLowerCase();
for(int i=0;i<s.length();i++) {
if(Character.isLowerCase(s.charAt(i))) {
word+=(s.charAt(i)+"");
flag=1;
}
else if(flag==1) {
words.add(word);
word="";
flag=0;
}
}
if(flag==1) {words.add(word);}
}
for(String ch:words) {
ofile.write(ch+" ");
}
ofile.close();
ifile.close();
sc.close();
}
}