Java如何交换字符串中两个位置的值

 更新时间:2023年06月14日 14:42:15   作者:腾阳山泥若  
这篇文章主要介绍了Java如何交换字符串中两个位置的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java交换字符串中两个位置的值

需求:

对一字符串abcd,要求交换位置0和位置2的两个字符,交换结果为cbad

java高效实现方案

先将String转换为char数组,数组可以修改任意位置的值,进行常规的数组交换即可

public static void main(String[] args) {
    String str = "abcd";
    int i = 0, j = 2;
    char[] strArray = str.toCharArray(); // 转换成数组
    char temp = strArray[i];
    strArray[i] = strArray[j];
    strArray[j] = temp;
    str = String.valueOf(strArray);
    System.out.println(str);
}

Java以字符串某一位置为界,将它之前的部分与之后的部分互换位置

需求:

给定一个字符串str和一个整数i,i代表字符串中某一个元素的下标,将str[0..i-1]移到这个元素的右侧,将str[i+1..len(str)-1]移到这个元素的左侧。

(要求:时间复杂度为O(N),空间复杂度为O(1))。

实现思路

以分割数为界,分为左侧和右侧,分别将左侧和右侧的字符串进行反转,然后将左侧和右侧分别看成一个整体,将左侧和右侧进行反转。

测试用例样例 

  • 输入:”abcde”, 2 
  • 预期结果: decab

下面是Java代码的实现:

public class TestReverse {
    public static void main(String[] args) {
        String str = "abcde";
        System.out.println(replaceBeginAndEnd(str, 2));
    }
    public static String replaceBeginAndEnd(String str, int i) {
        if (str == null || i < 0 || str.length() <= i) {
            return str;
        }
        char[] chars = str.toCharArray();
        reverseCharArray(chars, 0, i - 1);
        reverseCharArray(chars, i + 1, chars.length - 1);
        reverseCharArray(chars, 0, chars.length - 1);
        return new String(chars);
    }
    private static void reverseCharArray(char[] chars, int begin, int end) {
        char temp;
        while (begin < end) {
            temp = chars[begin];
            chars[begin] = chars[end];
            chars[end] = temp;
            begin++;
            end--;
        }
    }
}

输出结果为:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 实例讲解Python中整数的最大值输出

    实例讲解Python中整数的最大值输出

    在本篇文章里小编给大家分享了关于Python中整数的最大值输出的实例内容,以及相关知识点,需要的朋友们学习下。
    2019-03-03
  • Python教程使用Chord包实现炫彩弦图示例

    Python教程使用Chord包实现炫彩弦图示例

    在可视化中,有时候会使用到弦图(Chord Diagram)来表示事物之间关系,本篇文章教大家如何使用Chord包实现炫彩弦图,有需要的朋友可以借鉴参考下,希望大家多多进步,早日升职加薪
    2021-09-09
  • PyCharm MySQL可视化Database配置过程图解

    PyCharm MySQL可视化Database配置过程图解

    这篇文章主要介绍了PyCharm MySQL可视化Database配置过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 基于PyQT5制作一个敏感词检测工具

    基于PyQT5制作一个敏感词检测工具

    这篇文章主要介绍了如何利用PyQT5制作简易的敏感词检测工具。可以根据敏感词库文件筛选,查看输入的文本中是否包含敏感词汇,从而过滤出相关的敏感词。感兴趣的可以了解一下
    2022-02-02
  • Python结合wxPython实现AI绘图提示词生成器

    Python结合wxPython实现AI绘图提示词生成器

    这篇文章主要为大家详细介绍了Python如何基于wxPython开发一个AI绘图提示词生成器,专门用于帮助用户快速构建和管理Stable Diffusion、Midjourney等AI绘图工具的提示词,感兴趣的小伙伴可以了解下
    2025-12-12
  • conda创建环境、安装包、删除环境步骤详细记录

    conda创建环境、安装包、删除环境步骤详细记录

    对于生信工作者,有一个方便可用的环境可以极大地方便我们开展分析,conda可以让我们在非root的情况下较为方便地切换不同的工作环境,下面这篇文章主要给大家介绍了关于conda创建环境、安装包、删除环境步骤的相关资料,需要的朋友可以参考下
    2022-08-08
  • python的range和linspace使用详解

    python的range和linspace使用详解

    今天小编就为大家分享一篇python的range和linspace使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python 内置函数sorted()的用法

    Python 内置函数sorted()的用法

    这篇文章主要介绍了Python 内置函数sorted()的用法,文章内容介绍详细具有一的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-03-03
  • python requests使用socks5的例子

    python requests使用socks5的例子

    今天小编就为大家分享一篇python requests使用socks5的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python装饰器相当于函数的调用方式

    python装饰器相当于函数的调用方式

    今天小编就为大家分享一篇python装饰器相当于函数的调用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论