0
点赞
收藏
分享

微信扫一扫

Java习题练习:1299 String


目录

  • ​​🍋问题描述​​
  • ​​🍋解题思路​​
  • ​​🍋解题代码​​

🍋问题描述

Java习题练习:1299 String_字符串


Java习题练习:1299 String_java_02

🍋解题思路

模拟题。
需要注意的是循环。用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++;
}

}
}
}
}


举报

相关推荐

0 条评论