JAVA中字符串的插入

一、问题描述

就是我们现在有一个字符串,我们需要实现一个功能,就是选择在字符串中字符的ASCII码最大的地方,插入字符串。

二、解决思路

我们直接循环,获取字符串中所有的字符,然后判断这个字符,并且获得这个字符所处的地址,在这个地方,我们进行插入。

三、代码实现

import java.util.Scanner;
public class str_insert1 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.next(),str2=sc.next();
        int j=0;
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)>str.charAt(j)){
                j=i;
            }
        }
        System.out.println(str.substring(0, j+1)+str2+str.substring(j+1));
    }
}

然后我们可能还会碰到别的需求。比方说我们需要在字符串中最长的连续出现的字符后插入。

然后这个问题实际上入手点就和上面一样,找到字符串中最长的连续出现的字符。那么这个应如何找呢?

思路就是我们选到一个字符,将这个字符和后面的数值相比较,如果相同,就记下相同的数目,然后和后面的字符数量进行比较。实现代码如下:

import java.util.Scanner;
public class str_insert2 {
    public static int i,m;
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.next(),str1=sc.next();
        int cnt=0;
        for(i=0;(i+1)<str.length();){
            int j=i+1;
            while(str.charAt(i)==str.charAt(j)&&j<str.length())
            {
                j++;
            }
            if((j-i)>cnt){
                cnt=j-i;
                m=j;
            }
            i=j;
        }
        System.out.println(str.substring(0,m)+str1+str.substring(m));
    }
}

上面有了字符串中最长的连续出现的字符的代码。然后我们可能会想去尝试一下如果我们是要把字符出现只出现一次,或是出现最少的后面再加呢。然后我们就去实现它把。

这个实现方式我们按照上面的方式实际上也是可以的,然后我们可以试着另外的一种方式。

只出现一次的情况:

import java.lang.reflect.Array;
import java.util.Collections;
import java.util.Scanner;
public class str_insert3 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.next(),str1=sc.next();
        int[] arr=new int[26];
        for(int i=0;i<str.length();i++){
            int num=str.charAt(i)-'a';
            arr[num]++;
        }
        for(int i=0;i<str.length();i++){
            if(arr[i]==1)
            {
                System.out.print(str.substring(0, i+1)+str1+str.substring(i+1));
                break;
            }
        }
    }
}

如果是出现最少的情况,就在我们出现最多的情况下修改就行了,这里就不再赘述了。

posted @ 2022-11-15 18:55  Tomhard  阅读(2219)  评论(0编辑  收藏  举报