目录
- 🍋问题描述
- 🍋解题思路
- 🍋解题代码
🍋问题描述
🍋解题思路
模拟题。
需要注意的是循环。用while()循环,里面要填写in.hasNext()或者in.hasNextLine()都可以。
还有坑的就是,S命令的数字可能有两位三位四位,不会只是一位。所以要用split来切割得到数字的字符串,再转化为数字。
🍋解题代码
import java.util.Scanner;
public class Main
{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNextLine()) {//不要全抄我的代码
String a=in.nextLine();//有了整提思路之后,就自己写。
StringBuilder st=new StringBuilder(a);//一定要用StringBuilder来存起来。用StringBuilder来进行操作
int x=1;
while(in.hasNext()){
String b=in.nextLine();
if(b.equals("END")) {
System.out.println();
break;
}
if(b.charAt(0)=='S') {
String[] split=b.split(" ");//切割
int r=0;
int l=0;
int t=1;
for(int i=split[1].length()-1;i>=0;i--) {//字符串转化为数字
l+=(split[1].charAt(i)-'0')*t;
t*=10;
}
t=1;
for(int i=split[2].length()-1;i>=0;i--) {//字符串转化为数字
r+=(split[2].charAt(i)-'0')*t;
t*=10;
}
char c=split[3].charAt(0);
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++;
}
}
}
}
}