java实现字符串反转
问题:
给一个字符串,比如 “I love china”, 把字符反转后变成 “china love I”
思路:
先把字符串从第一个字符与最后一个字符对换,第二个字符和倒数第二个字符对换,这样,我们就把每一个单词位置互换了。但是我们要求单词里面字符的顺序是不能变的,所以,我们要把每一个单词里面的字符从头到尾对换一下。这样就可以得到我们想要的字符串了。
实现:
因为这里两次都会用到字符反转,所以我们就单独写一个swap的方法出来。我们对每个单词进行发转的时候,需要记录每个单词的起始点和结束点,对于第一个单词,起始点是0,最后一个单词,结束点是string.length() - 1。而中间的单词,开始点和结束点是空格的位置。
代码如下:
public class StringReverse {public void swap(char[] arr, int begin, int end) {while(begin < end) {char temp = arr[begin];arr[begin] = arr[end];arr[end] = temp;begin++;end--;}}public String swapWords(String str) {char[] arr = str.toCharArray();swap(arr, 0, arr.length - 1);int begin = 0;for (int i = 1; i < arr.length; i++) {if (arr[i] == ' ') {swap(arr, begin, i - 1);begin = i + 1;}}swap(arr, begin, arr.length - 1);return new String(arr);}public static void main(String[] args) {String str = "I";System.out.println(new StringReverse().swapWords(str));}}
转载请注明出处:http://blog.csdn.net/beiyeqingteng
java实现字符串反转相关推荐
- java案例——字符串反转
java案例--字符串反转 1.需求: 定义一个方法,实现字符串反转.键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入abc,输出结果cba 2.思路: 1.键盘录入一个字符串,用S ...
- java实现字符串反转_java实现字符串反转案例
java实现字符串反转案例 发布时间:2020-09-22 02:42:01 来源:脚本之家 阅读:83 作者:star__king 本文实例为大家分享了java实现字符串反转的具体代码,供大家参考, ...
- 万字总结!java让字符串反转
Java基础 JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java ...
- Java中字符串反转的七种方法
突然在想,确实是浮躁了 字符串反转的七种方法: 在线代码: package test1;import java.util.Stack;public class Reverse {//方法一:递归+字符 ...
- JAVA实现字符串反转(Reverse)的方法(没有最快,只有更快)
字符串反转在Java程序笔试面试中经常遇到,程序出了满足设计需要外,往往我们还要考虑到性能及内存相关的问题,如果考虑到性能和内存相关的问题,在笔试或面试中更容易赢得考官的青睐. 不多说,给出我这边实现 ...
- java实现字符串反转【全】
package com.wsheng.aggregator.algorithm.string;import java.util.Stack;/*** 8 种字符串反转的方法, 其实可以是9种方法,第9 ...
- Java将字符串反转的几种方式
工作中偶尔会遇到需要将字符串反转的需求,下面来介绍反转字符串的几种方式 一.使用 StringBuilder 或 StringBuffer 的 reverse 方法 他们的本质都是调用了它们的父类 A ...
- 【学习笔记】0002. JAVA实现字符串反转(10种方法)
221117更新,突发奇想想试试各种反转方式的效率,调整代码,不断增长待反转的字符串位数. 其中,C2方法率先出局,当字符串长度为几千位时,C2方法内存溢出,注释掉,继续增长测试其他方法:B3方法当字 ...
- java字符串反转的方法,Java实现字符串反转的几种方法
1.最简单的方法: public static String reverse1(String str) { return new StringBuffer(str).reverse().toStrin ...
最新文章
- bzoj 1040: [ZJOI2008]骑士 树形dp
- Backtrack5 SQL注入漏洞探测
- [Buzz.Today]HP停止 webOS 设备的研发和运作
- JavaBean的详细及引用
- AI芯片浮出新玩家OURS,来者何人?新晋图灵奖得主华人弟子谭章熹
- ThinkPHP多语言包功能使用
- ubuntu局域网服务器搭建网站,ubuntu搭建局域网dns服务器
- 用对象的上转型对象、方法重写,抽象编程:求柱体的体积。
- Ubuntu使用sudo cp命令复制文件夹时出现“cp: omitting directory”问题
- 为什么招聘单位都要求你有ITIL证书,你知道吗?
- 高级JavaScript第(五)篇
- 用canvas画钟,实时变化的钟
- (转)在日企面试如何主动给自己加分
- 陕西师范大学第七届程序设计竞赛网络同步赛 J 黑猫的小老弟【数论/法拉数列/欧拉函数】...
- Arduino蓝牙控制三色灯
- 财务软件性能测试要求,财务报表性能测试总结 - 泊 涯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- Stm32文件系统FATFS(开始于2021-09-09)
- Axure无法同时打开多个.rp文件
- 思仪 4024A/B/C/D/E/F/G/H/L频谱分析仪
- virtualxposed使用教程_使用VirtualXposed修改手游
热门文章
- Idea工具如何使用
- XELA ROBOTICS 发布Uskin 皮肤触觉传感器
- nodejs+express解决微信公众号token验证失败
- 在 Create-React-App 中使用 TypeScript(汉化)
- JavaScript去除数组重复的元素且都不保留
- Python/numpy 设置数组某一整行列的值为0/1 修改数组行列设置为特定值
- 用Pythn言何实现你的股票量交模型
- SSD LBA 计算器
- 频上“热搜”的人工智能专业,主要学什么?为什么如此火爆?
- 麒麟服务器v10系统安装时报错,银河麒麟V10服务器版本编译安装php7.2.12