博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
寻找最长单词链
阅读量:5305 次
发布时间:2019-06-14

本文共 3287 字,大约阅读时间需要 10 分钟。

用JavaScript substring 方法比较相邻两个字符串的相邻字母,匹配相等则将字符串存入数组,否则继续往下比较。代码如下:

package jielong;import java.io.BufferedWriter;import java.io.IOException;import java.util.ArrayList;import jielong.MyFile;public class FineWord{    public ArrayList
words = new ArrayList<>(); public ArrayList
wordsList = new ArrayList<>(); public boolean compare(String a, String b) { a = a.toLowerCase(); b = b.toLowerCase(); return (a.substring(a.length() - 1).equals(b.substring(0, 1))); } public void fileSplit(String path) throws Exception { MyFile file = new MyFile(); String theFileString = file.get(path); if (theFileString == null) { return; } if (theFileString.equals("")) { throw new Exception("空文件"); } for (String word : theFileString.split("\\,|\\,|\\r|\\n|\\.| |\\(|\\)|\\;|\\:|\"|\\?|\\!|\\'|  |\\、|\\”|\\“")) { if (!word.equals("")) { words.add(word); } } if (words.size() <= 1) { throw new Exception("文件内单词过少(只有" + words.size() + "个词)"); } } public void wordWrite(int index, String path) throws Exception { MyFile file = new MyFile(); BufferedWriter bf = file.put(path); wordsList.add(words.get(index)); try { for (String string : words) { if (compare(wordsList.get(wordsList.size() - 1), string)) { wordsList.add(string); bf.append(string); bf.newLine(); } } bf.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } if (wordsList.size() <= 1) { throw new Exception("没有单词链"); } } public static void main(String[] args) { FineWord aFineWord = new FineWord(); try { aFineWord.fileSplit("D:\\java/eclipse/word/123.txt"); aFineWord.wordWrite(0, "D:\\java/eclipse/word/output.txt"); System.out.println(aFineWord.wordsList); } catch (IOException e) { System.out.println("无此文件"); } catch (Exception e) { System.out.println(e.getMessage()); } }}

 

package jielong;import java.io.*;import java.nio.file.Paths;import java.util.Scanner;public class MyFile{    public String get(String path) throws IOException    {        Scanner in = null;        String File = "";        in = new Scanner(Paths.get(path));        while (in.hasNextLine())        {            File += in.nextLine();        }        return File;    }    public BufferedWriter put(String path)    {        try        {            FileWriter f = null;            BufferedWriter bf = null;            try            {                f = new FileWriter(path);                bf = new BufferedWriter(f);            } catch (IOException e)            {                e.printStackTrace();            }            return bf;        } catch (Exception e)        {            e.printStackTrace();        }        return null;    }}

 

转载于:https://www.cnblogs.com/yuanxiaochou/p/10995287.html

你可能感兴趣的文章
实用Android开发工具和资源精选
查看>>
TileMap
查看>>
JS属性大全
查看>>
java复制文件
查看>>
第一册:lesson seventy nine.
查看>>
GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
查看>>
团队作业
查看>>
数据持久化时的小bug
查看>>
mysql中key 、primary key 、unique key 与index区别
查看>>
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>