import java.util.Scanner;
public class Main
{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNext()) {
String a=in.nextLine();
StringBuilder st=new StringBuilder(a);
int x=1;
while(in.hasNext()){
String b=in.nextLine();
if(b.charAt(0)=='E') {
System.out.println();
break;
}
if(b.charAt(0)=='S') {
int l=(int)(b.charAt(2)-'0');
int r=(int)(b.charAt(4)-'0');
char c=b.charAt(6);
for(int i=l-1;i<r;i++) {
st.setCharAt(i, c);
}
System.out.println(x+":"+st.toString());
x++;
}
if(b.charAt(0)=='T') {
char from=b.charAt(2);
char to=b.charAt(4);
for(int i=0;i<a.length();i++) {
if(st.charAt(i)==from)
st.setCharAt(i, to);
}
System.out.println(x+":"+st.toString());
x++;
}
}
}
}
}
int l=(int)(b.charAt(2)-'0');
int r=(int)(b.charAt(4)-'0');
你这只能适应S 2 4 C这种,但2和4可能是两位数啊,要是S 10 20 C你不就不行了么。还是要根据空格来拆分啊
允许输入的字符串长度不超过100,那么出现S 10 20 C这样的情况是很有可能的。给出的样例只是一个简单说明而已
if("END".equals(b)) 用字符串判断
import java.util.Scanner;
public class Main
{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNext()) {
String a=in.nextLine();
StringBuilder st=new StringBuilder(a);
int x=1;
while(in.hasNext()){
String b=in.next();
if("END".equals(b)) {
System.out.println();
break;
}
if(b.charAt(0)=='S') {
int l=(int)(b.charAt(2)-'0');
int r=(int)(b.charAt(4)-'0');
char c=b.charAt(6);
for(int i=l-1;i<r;i++) {
st.setCharAt(i, c);
}
System.out.println(x+":"+st.toString());
x++;
}
if(b.charAt(0)=='T') {
char from=b.charAt(2);
char to=b.charAt(4);
for(int i=0;i<a.length();i++) {
if(st.charAt(i)==from)
st.setCharAt(i, to);
}
System.out.println(x+":"+st.toString());
x++;
}
}
}
}
}
题在哪
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!