如何从文本中找出匹配的字符串-问答-阿里云开发者社区-阿里云

开发者社区> a123456678> 正文

如何从文本中找出匹配的字符串

2016-03-04 17:56:23 2033 1

建立一个文本文件,其内容如下。对于任一给定的单词,在该文本中找寻匹配的字符串,输出结果
Information security means protecting
information and information systems from unauthorized access, use, disclosure,
disruption, modification, or destruction. The terms information security,
computer security and information assurance are frequently used
interchangeably.
具体要求:
1、实现文件的读取操作,而不是将文本以字符串形式预存于程序中
2、进行单词匹配时,不区分大小写
3、统计需要匹配的单词在该文本中出现的次数和位置(即该单词是文本的第几个单词),并输出
4、对于基本匹配但不完全匹配的单词,能够给出提醒信息(例如,当用户试图匹配单词“securite”时,系统能够提示用户,是否是需要匹配“security”)
最好是java的图形化界面,其他的也可以

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 18:52:40

    对于这个题我的思路是:先从文件中读入内容到程序,然后对于用户输入的目标串进行匹配,匹配成功的结果存入Map中,文本扫描完毕,Map中的键值对就是所要求的目标串的位置和值,假若匹配不成功,则才从头检索目标串的子串,循环进行查找,找到相近的就是你所说的基本匹配 我写的代码如下,不足之处欢迎指正:

    public class FileTest 
    {
    public static void main(String[] args)throws Exception
    {
    int count=0,index=0;
    HashMap map=new HashMap();
    Scanner sc=null;
    boolean flag=false;
    
        System.out.println("待查找的目标串为:");
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        String mode = br.readLine();
    
        sc=new Scanner(new File("F:\\myclass\\test.txt"));
        while(sc.hasNext())
        {
            index++;
            if(sc.next().equalsIgnoreCase(mode))
            {
                flag=true;
                map.put(""+index,sc.next());
                count++;
            }
        }
        if(flag)
        {
            System.out.println("查到目标串count:"+count+"的分别为:");
            for(Object key:map.keySet())
                System.out.println("索引Key:"+key+"----->"+map.get(key));
        }
        else
        {
            sc=new Scanner(new File("F:\\myclass\\test.txt"));
            q:while(mode.length()>0)
            {
                mode=mode.substring(0,mode.length()-1);
                while(sc.hasNext())
                {
                    String s=sc.next();
                    if(s.compareTo(mode)==(s.length()-mode.length()))
                    {
                         System.out.println("未找到目标串,但是找到相似的串"+s);
                         break q;
                    }
                }
            }
    
        }
    }
    }
    0 0
相关问答

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 222990浏览量 回答数 162

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333867浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292281浏览量 回答数 110

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146780浏览量 回答数 22

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 643119浏览量 回答数 18

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 145621浏览量 回答数 31

33

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 277527浏览量 回答数 33

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256864浏览量 回答数 38

294

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 431610浏览量 回答数 294

13

回答

游戏云精彩帖汇总

nono20011908 2014-08-22 11:00:12 203636浏览量 回答数 13
+关注
0
文章
14879
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载