最长的相连英语单词串为:  apple - elephant – tree,  输出到文件里面,是这样的:

              Apple

              Elephant

              Tree

 

追加:判断文件不存在,文件无单词,文件一个单词,文件中无关联的(文件一个单词是其特殊情况)

在文本input.txt中取出单词,在outout.txt显示最长的相连英语单词串

任务分解:先行判断文件是否存在

不存在->显示错误

存在->取出单词存于内存中->判断单词数是否为一个

一个->显示错误

不是一个->判断相连英语单词(持续)(有一个判断是否重复的代码判断)->导出最长的相连英语单词串

我的所有错误在控制台的输出都注释掉了,改成在文本里显示

 

public class ClassTest {
public static void main(String[] args) throws IOException {

String filename = "D:/Coldplay.txt";
File a=new File(filename);

File file = new File("D://output.txt");
long startTime = System.currentTimeMillis();
//judeFileExists(a);
if (judeFileExists(a)) {
check(filename);
} else {
try {

FileWriter fw = new FileWriter(file);
fw.write("无此文件");
fw.flush();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
long endTime = System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间:" + (endTime - startTime) + "ms");
}

public static void check(String s) throws IOException {

BufferedReader br = new BufferedReader(new FileReader(s));
StringBuffer sb = new StringBuffer();
String text = null;
while ((text = br.readLine()) != null) {
sb.append(text);// 将读取出的字符追加到stringbuffer中
}
br.close(); // 关闭读入流
String str = sb.toString().toLowerCase(); // 将stringBuffer转为字符并转换为小写

String[] words = str.split("[^(a-zA-Z)]+"); // 非单词的字符来分割,得到所有单词

StringBuffer yao = new StringBuffer();
String b1 = words[0];
System.out.println(b1);
yao.append(b1);
yao.append(" ");

if (b1.equals("")) {
System.out.println("文件为空");
yao.append("文件为空");
} else {
if (words.length == 1) {
System.out.println("只有一个单词");
}

String end = b1.substring(b1.length() - 1, b1.length());
// System.out.println(end);
for (int i = 1; i < words.length; i++) {

String start = words[i].substring(0, 1);
if (end.equals(start)) {
if (ju(yao, words[i])) {
} else {
end = words[i].substring(words[i].length() - 1, words[i].length());
yao.append(words[i]);
yao.append(" ");
}

}
}

if (yao.toString().equals(words[0] + " ")) {
yao.append("无互联语句");
System.out.println("无互联词");
}
}


// for( String a:words)
// {
// System.out.println(a);
// }
// System.out.println(yao.toString());
File file = new File("D://output.txt");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}

try {

FileWriter fw = new FileWriter(file);
fw.write(yao.toString());
fw.flush();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}


}

public static boolean ju(StringBuffer yao, String word) {
String a = yao.toString();
boolean flag = false;
String[] words = a.split("[^(a-zA-Z)]+"); // 非单词的字符来分割,得到所有单词
for (int i = 0; i < words.length; i++) {
if (word.equals(words[i])) {
flag = true;
}
}
return flag;
}