最长的相连英语单词串为: 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;
}