【字符串】【JAVA】P5734 【深基6.例6】文字处理软件

在这里插入图片描述

一道让我读半天题目都没有读明白的题,一开始想不明白输入的格式和题上的要求之间的关系是什么。
一开始输入的4,让我不是很明白要表达什么意思,感觉是一开始输入的字符串长度吧,但看输入样例的话,应该是5才对啊,我实在是想不到其他的含义了,先试试吧!
后面的是对应输入的操作,对应四种对字符串的操作,这里可以通过switch语句来实现,至于具体内容的实现,我想这些类应该都被封装好了。

写在后面
不得不说对于一些封装好的操作,java真的很方便,这段代码顺利AC。通过帮助文档,对于四个条件再总结一下。
同时对于这些字符的起始位置也是从0开始的,这和题上的字符从0开始是对应的。

1.String concat​(String str) 将指定的字符串连接到该字符串的末尾。 通过这个方法实现第一个操作。
2.String substring​(int beginIndex, int endIndex) 返回一个字符串,该字符串是该字符串的子字符串。
3.第三个是插入子串,我没有在String里面找到对应的方法,我记得StringBuilder里有这个方法,然后就想着可以把原来的字符串分成两段,然后再拼接起来这样也算插入一个子串。方法还是第二个操作的方法。
4.int indexOf​(String str) 返回指定子字符串首次出现在该字符串中的索引。

package LOQ.字符串;
import java.util.Scanner;
/*
字符串操作
 */
public class P5734 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt(); //起始输入字符串的长度,我感觉没什么用处
        String start = sc.next();   //起始字符串
        while(sc.hasNext()) {   //进行多次输入操作
            int num=sc.nextInt();   //执行操作的序号
            switch (num) {
                case 1:
                    start = start.concat(sc.next());
                    System.out.println(start);
                    break;
                case 2:
                    int a=sc.nextInt(),b=sc.nextInt();
                    start=start.substring(a,a+b);
                    System.out.println(start);
                    break;
                case 3:
                    int index=sc.nextInt(); //插入的起始位置
                    String sub=sc.next();   //子串
                    start=start.substring(0,index)+sub+start.substring(index);
                    System.out.println(start);
                    break;
                case 4:
                    System.out.println(start.indexOf(sc.next()));
                    break;
            }
        }
    }
}
posted @ 2022-03-01 07:53  Lnnau  阅读(66)  评论(0)    收藏  举报