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玩转加密的技巧【推荐】

    Python玩转加密的技巧【推荐】

    Python 中的一个有用的基本加密库就叫做 cryptography 。这篇文章主要介绍了Python玩转加密的技巧,需要的朋友可以参考下
    2019-05-05
  • Python Pytorch gpu 分析环境配置

    Python Pytorch gpu 分析环境配置

    Pytorch是目前最火的深度学习框架之一,目前也支持了pytorch的GPU加速,所以我就想着,在这两个电脑上装个Pytorch,这篇文章主要介绍了Python Pytorch(gpu)分析环境配置,需要的朋友可以参考下
    2023-04-04
  • Python中Playwright的常用操作方法分享

    Python中Playwright的常用操作方法分享

    本文详细介绍了Playwright的常用操作方法,包括获取页面元素、点击按钮和链接等。这些方法可以帮助开发者更加高效地进行自动化测试和爬虫开发,需要的可以参考一下
    2023-05-05
  • 将Django项目部署到CentOs服务器中

    将Django项目部署到CentOs服务器中

    今天小编就为大家分享一篇关于将Django项目部署到CentOs服务器中的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例

    Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例

    这篇文章主要介绍了Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作,涉及Python基于先序遍历和中序遍历构造二叉树,再后序遍历输出相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • Python基于爬虫实现全网搜索并下载音乐

    Python基于爬虫实现全网搜索并下载音乐

    这篇文章主要介绍了Python基于爬虫实现全网搜索并下载音乐的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-02-02
  • Python的Django框架中TEMPLATES项的设置教程

    Python的Django框架中TEMPLATES项的设置教程

    这篇文章主要介绍了Python的Django框架中TEMPLATES项的设置教程,主要针对Django1.8后的新特性,需要的朋友可以参考下
    2015-05-05
  • 基于python神经卷积网络的人脸识别

    基于python神经卷积网络的人脸识别

    这篇文章主要为大家详细介绍了基于python神经卷积网络的人脸识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • python删除指定目录下的文件和文件夹的实现

    python删除指定目录下的文件和文件夹的实现

    在日常的办公中,我们可以利用Python批量删除文件和文件夹,本文就来介绍一下python删除指定目录下的文件和文件夹的实现,感兴趣的可以了解一下
    2024-01-01

最新评论