2021-05-31

这篇博客探讨了如何在Java中进行字符串的反转操作,包括使用字符数组和StringBuffer两种方式。同时,介绍了如何在不创建新空间的情况下原地修改字符串,通过头尾交换实现字符串的反转。这些技巧在字符串处理中非常实用。
摘要由CSDN通过智能技术生成

在这里插入图片描述

预备知识

  • 字符串数组->字符串
// 定义一个str字符串数组
String[] str = {"asd","qwe","ere"};
// 循环遍历
StringBuffer sb =new StringBuffer();
for(int i = 0; i < str.length; i++){
	sb.appeng(str[i]);
}
// 返回字符对象
sb.toString();
  • 字符数组->字符串
// 字符数组
char[] data = {'a','s','e'}; //arr[i]
String str = new String(data) // str.charAt(i)
  • 字符串->字符数组
String str = "absddd"
char[] ans = str.toCharArray() // ans[i]

1. 代码:

  1. 新建一个和str长度大小相同的temp字符数组,循环遍历将strt倒序赋值给temp里,空间复杂度为O(n)
  public String solve (String str) {
        // write code here
        int len = str.length();
        if(len >1000){
            return null;
        }
        // str.toCharArray();字符数组
        char[] temp = str.toCharArray();
        for(int i=0;i<len;i++){
        //str.charAt(len-1-i); 返回指定索引处的 char 值
            temp[i] = str.charAt(len-1-i);
        }
        String res = new String(temp);
        return res;
    }

2. 原地实现,不开辟新空间

  1. 头尾交换
// 将字符转换为字符数组
char[] temp = str.toCharArray();
for(int i = 0 ; i < len/2 ;i++){
	char t = temp[i] // 当前字符
	temp[i] = temp[len-1-i]
	temp[len-1-i] = t;
}
return new String(temp)
weixin063传染病防控宣传微信小程序系统的设计与实现+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值