输入有多组数据。 每组数据第一行输入n(1<=n<=1000),从第二行开始输入n个字符串(不含空格),接下来输入一个匹配字符串。
输出匹配到的字符串的行号和该字符串(匹配时不区分大小写)。
4 Aab a2B ab ABB a[a2b]b
1 Aab 2 a2B 4 ABB
import java.util.ArrayList; import java.util.Scanner; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()){ int n = scanner.nextInt(); ArrayList<String> list = new ArrayList<>(); for (int i = 0; i < n; i++) list.add(scanner.next()); String r = scanner.next().toLowerCase(); for (int i = 0; i < list.size(); i++) { if (Pattern.matches(r,list.get(i).toLowerCase())) System.out.println(i+1+" "+list.get(i)); } } } }
//坑爹,判断有无输入要用sc.hasNextInt() //而且接收字符串要用sc.next()(而不是sc.nextLine()) //第一个会报类型不匹配,第二个在688个的用例情况下会不通过. import java.util.Scanner; import java.util.regex.Pattern; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNextInt()){ int n=sc.nextInt(); String[] arr=new String[n+1]; for(int i=1;i<n+1;i++){ arr[i]=sc.next().trim(); } String regex=sc.next().trim().toLowerCase(); Pattern p=Pattern.compile(regex); for(int i=1;i<n+1;i++){ String s=arr[i]; if(p.matcher(s.toLowerCase()).matches()){ System.out.println(i+" "+arr[i]); } } } } }
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.regex.Pattern;
/**
* @author Allen_Hua
* @create_time May 16, 2018 8:58:27 AM
*/
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
int n = scan.nextInt();// 行数
Map map = new HashMap();
for (int i = 0; i < n; i++) {
String str = scan.next();
map.put(i + 1, str);
}
String tar = scan.next();// 短目标字符串
// 模式匹配
for (Map.Entry entry : map.entrySet()) {
Integer key = entry.getKey();
String value = entry.getValue();
boolean judge = Pattern.compile(tar, Pattern.CASE_INSENSITIVE).matcher(value).find();
if (judge) {
System.out.println(key + " " + value);
}
}
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws NullPointerException {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
int n = scan.nextInt();
String[] arr = new String[n];//输入的字符串数组
for (int i = 0; i < arr.length; i++) {
arr[i] = scan.next();
}
String tar = scan.next();// 目标字符串
deal(tar, arr);//处理问题方法
}
}
/**
* 传进来目标字符串tar
* 需要处理的字符串数组arr
*
* @param tar
* @param arr
*/
private static void deal(String tar, String[] arr) {
// TODO Auto-generated method stub
//如果包含 [ ] 则构造匹配的各个字符串和arr比较
if (tar.contains("[") && tar.contains("]")) {
int left = tar.indexOf("[");
int right = tar.indexOf("]");
String newStr = tar.substring(left + 1, right);//获得中括号之间的字符串
String[] matchStr = new String[right - left - 1];//中括号之间的字符串个数 构造该个数的字符串数组
String[] candidate = new String[newStr.length()];//临时保存sb内容
for (int i = 0; i < newStr.length(); i++) {
char pipei = newStr.charAt(i);
StringBuffer sb = new StringBuffer();
sb.append(tar.substring(0, left));
sb.append(pipei);
sb.append(tar.substring(right + 1));
candidate[i] = sb.toString();
}
for (int i = 0; i < arr.length; i++) {
String cmp1 = arr[i];
for (int j = 0; j < candidate.length; j++) {
String cmp2 = candidate[j];
if (cmp1.compareToIgnoreCase(cmp2) == 0) {
System.out.println((i + 1) + " " + cmp1);
}
}
}
}
else {//不包含 [ ]
for (int i = 0; i < arr.length; i++) {
String cmp1 = arr[i];
if (cmp1.compareToIgnoreCase(tar) == 0) {
System.out.println((i + 1) + " " + cmp1);
}
}
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line = input.readLine()) != null) {
int n=Integer.parseInt(line);
String str[]=new String[n];
for(int i=0;i<n;i++){
str[i]=input.readLine();
}
String pattern=input.readLine().toLowerCase();
for(int i=0;i<n;i++){
if(str[i].toLowerCase().matches(pattern)){
System.out.println(i+1+" "+str[i]);
}
}
}
input.close();
}
}
import java.util.*;
publicclass match {
public static void main(String[] args){
@SuppressWarnings( "resource" )
Scanner in=new Scanner(System.in);
while(in.hasNext()){
int n=in.nextInt();
String[] ss=new String[n];
for(int i=1;i<=n;i++){
ss[i-1]=in.next();
}
String reg=in.next();
for(int i=0;i<n;i++){
reg="(?i)"+reg;
if(ss[i].matches(reg))
System.out.println((i+1)+" "+ss[i]);
}
}
}
}