java练习——int indexOf(String ,int)

救基友记2

Time Limit: 1000 ms  Memory Limit: 65536 KiB

Problem Description

    屌丝 WP 的好基友 CZ 又被妖鬼给抓走了( CZ 啊, CZ…. 怎么说你好呢 . 吃着锅里想着碗里),为了求出 CZ ,他只好去求高富帅 RQ, RQ WP 出了到题目说只要你能解决这道题目,他就答应帮屌丝 WP 去解救好基友 CZ 。题目描述如下:
  给你一个字符串s,长度小于1000,让你找出该字符串所包含的所有子串"cRazY" 或者"CraZy",并将找出的子串的大写字母变成小写字母,小写字母变成大写字母,然后输出该字符串。
  “好基友,一被子” 你作为WP的好基友,能帮他解决这个问题吗?

Input

  1 行是一个整数 T ,表示测试数据的个数( 1<=T<=10 )。接下来有 T 组测试数据。

每组测试数据包括包括一个字符串s

Output

  输出 T 行,表示转换后的字符串 

Sample Input

2
abjbjhcRazYdcRazYCraZy
bbbnnnbbn

Sample Output

abjbjhCrAZydCrAZycRAzY
bbbnnnbbn

String 类真是强大,用一个indexOf(String ,int),直接相当于模式匹配,简单操作。
 
 
import java.util.*;
public class Main {
	
    public static void main(String args[]) {
    	Scanner cin = new Scanner(System.in);
    	int t = cin.nextInt();
    	while(t-->0) {
    		String s = cin.next();
    		int i = 0,j;
    		for(i = 0;i<s.length();i++) {
    			if(s.indexOf("CraZy", i)==-1&&s.indexOf("cRazY", i)==-1) {//如果返回-1,说明再这个字符串中没有与之匹配的,则全部输出
    				for(j =i;j<s.length();j++ ) {
    					System.out.print(s.charAt(j));
    				}
    				break;
    			}
    			else if(s.indexOf("CraZy", i)==i) {//返回当前i,说明从当前开始匹配,则直接输出变换后的字符串输出
    				System.out.print("cRAzY");
    				i = i+4;
    			}
    			else if(s.indexOf("cRazY", i)==i) {
    				System.out.print("CrAZy");
    				i = i+4;
    			}
    			else 
    				System.out.print(s.charAt(i));
    			
    		}
    		System.out.println();
    	}
    		
    }
}



猜你喜欢

转载自blog.csdn.net/xuan971130/article/details/80019572
int
今日推荐