ccf/201409-3 /字符串匹配---java

来源:互联网 发布:2016淘宝618报名入口 编辑:程序博客网 时间:2024/04/26 21:41

字符串匹配

  • 问题描述
      给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。
  • 输入格式
      输入的第一行包含一个字符串S,由大小写英文字母组成。
      第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。
      第三行包含一个整数n,表示给出的文字的行数。
      接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。
  • 输出格式
      输出多行,每行包含一个字符串,按出现的顺序依次给出那些包含了字符串S的行。
  • 样例输入
    Hello
    1
    5
    HelloWorld
    HiHiHelloHiHi
    GrepIsAGreatTool
    HELLO
    HELLOisNOTHello
  • 样例输出
    HelloWorld
    HiHiHelloHiHi
    HELLOisNOTHello
  • 样例说明
      在上面的样例中,第四个字符串虽然也是Hello,但是大小写不正确。如果将输入的第二行改为0,则第四个字符串应该输出。
    评测用例规模与约定
      1<=n<=100,每个字符串的长度不超过100。
      

  • 代码

import java.util.Scanner;import java.util.ArrayList;import java.util.Iterator;public class Main {    public static void main(String[] args){        Scanner in=new Scanner(System.in);        String s=in.nextLine();//字符串s        int option=in.nextInt();//大小写敏感选项,0(不敏感),1(敏感)        int n=in.nextInt();//给出的文字行数        ArrayList<String> list=new ArrayList<String>();        while(n>=0){            list.add(in.nextLine());//n行存储在集合中            n--;        }        in.close();        if(option==0){            //大小写不敏感            ignoreCase(s,list);        }else if(option==1){            //大小写敏感            caseSensitive(s,list);        }else{            System.out.println("error!");        }    }    //大小写敏感    public static void caseSensitive(String s,ArrayList<String> list){        Iterator<String> it=list.iterator();        while(it.hasNext()){            String temp=it.next();            if(temp.contains(s))                System.out.println(temp);        }    }    //大小写不敏感    public static void ignoreCase(String s,ArrayList<String> list){        String ss=s.toUpperCase();        Iterator<String> it=list.iterator();        while(it.hasNext()){            String temp=it.next();            String temp1=temp.toUpperCase();//先转换成大写            if(temp1.contains(ss))                System.out.println(temp);        }    }}
0 0