首页 > 编程语言 >JAVA中字符串的插入

JAVA中字符串的插入

时间:2022-11-15 19:14:36浏览次数:46  
标签:字符 JAVA Scanner int 插入 str 字符串 sc public

一、问题描述

就是我们现在有一个字符串,我们需要实现一个功能,就是选择在字符串中字符的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;
            }
        }
    }
}

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

标签:字符,JAVA,Scanner,int,插入,str,字符串,sc,public
From: https://www.cnblogs.com/TomHard/p/16893538.html

相关文章

  • java 获取字符串长度
    获取字符串长度/***获取字符串的长度,如果有中文,则每个中文字符计为2位*@paramvalue指定的字符串*@return字符串的长度*/publicstaticintlength......
  • Java Instrumentation
    前言JDK1.5开始,Java新增了Instrumentation(JavaAgentAPI)和JVMTI(JVMToolInterface)功能,允许JVM在加载某个class文件之前对其字节码进行修改,同时也支持对......
  • 常用的JavaScript代码技巧 (一)字符串、数字
    一、字符串类1.比较时间consttime1="2022-03-0510:00:00";consttime2="2022-03-0510:00:01";constovertime=time1<time2;//overtime=>true2.货币格式......
  • 常用的JavaScript代码技巧 (二)布尔、数组
    一、布尔1.基础操作consta=true&&false;//falseconstb=true||false;//trueconstc=!0;//true2.确定数据类型不判断的类型:undefined,null,stri......
  • java日历类Calendar的基本使用方法
    packageA_ShangGuiGu.DateTimeTest;importorg.junit.Test;importjava.util.Calendar;importjava.util.Date;publicclassCalendarTest01{@Testpublicvoidc......
  • C语言实现字符串反序存放
    在同一数组中进行反序,调换首元素和尾元素位置。#include<stdio.h>#include<string.h>intfun(chararr[]){inti=0;intj=strlen(arr)-1;for(i,j;i<strlen(arr)......
  • 9道常见的java笔试选择题
    9道常见的java笔试选择题1.关于Java编译,下面哪一个正确()(选择一项)A.Java程序经编译后产生machinecodeB.Java程序经编译后会生产bytecodeC.Java程序经编译后会产生DLLD.以......
  • 学习JAVA如何更快高效的掌握
      作为一个新入门的小白,这部分的内容肯定是要学扎实的。如果Java基础的技术都学的不扎实,那就没办法继续学后面的内容。主要的内容包含:Java基础语法、Java的平台应用以......
  • java 知识体系
    目录技术栈版本运行机制技术栈javasejava基础知识、语法,《java编程思想》javawebtomcat,maven,servlet,JSP用这些可以搭建web了,但是写起来代码量大SSM框架SSH......
  • java,抽象类,接口的方法,子类继承是不是必须全部实现
    普通类继承,并非一定要重写父类方法。抽象类继承,如果子类也是一个抽象类,并不要求一定重写父类方法。如果子类不是抽象类,则要求子类一定要实现父类中的抽象方法。接......