问题:

给一个字符串,比如 “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实现字符串反转相关推荐

  1. java案例——字符串反转

    java案例--字符串反转 1.需求: 定义一个方法,实现字符串反转.键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入abc,输出结果cba 2.思路: 1.键盘录入一个字符串,用S ...

  2. java实现字符串反转_java实现字符串反转案例

    java实现字符串反转案例 发布时间:2020-09-22 02:42:01 来源:脚本之家 阅读:83 作者:star__king 本文实例为大家分享了java实现字符串反转的具体代码,供大家参考, ...

  3. 万字总结!java让字符串反转

    Java基础 JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java ...

  4. Java中字符串反转的七种方法

    突然在想,确实是浮躁了 字符串反转的七种方法: 在线代码: package test1;import java.util.Stack;public class Reverse {//方法一:递归+字符 ...

  5. JAVA实现字符串反转(Reverse)的方法(没有最快,只有更快)

    字符串反转在Java程序笔试面试中经常遇到,程序出了满足设计需要外,往往我们还要考虑到性能及内存相关的问题,如果考虑到性能和内存相关的问题,在笔试或面试中更容易赢得考官的青睐. 不多说,给出我这边实现 ...

  6. java实现字符串反转【全】

    package com.wsheng.aggregator.algorithm.string;import java.util.Stack;/*** 8 种字符串反转的方法, 其实可以是9种方法,第9 ...

  7. Java将字符串反转的几种方式

    工作中偶尔会遇到需要将字符串反转的需求,下面来介绍反转字符串的几种方式 一.使用 StringBuilder 或 StringBuffer 的 reverse 方法 他们的本质都是调用了它们的父类 A ...

  8. 【学习笔记】0002. JAVA实现字符串反转(10种方法)

    221117更新,突发奇想想试试各种反转方式的效率,调整代码,不断增长待反转的字符串位数. 其中,C2方法率先出局,当字符串长度为几千位时,C2方法内存溢出,注释掉,继续增长测试其他方法:B3方法当字 ...

  9. java字符串反转的方法,Java实现字符串反转的几种方法

    1.最简单的方法: public static String reverse1(String str) { return new StringBuffer(str).reverse().toStrin ...

最新文章

  1. bzoj 1040: [ZJOI2008]骑士 树形dp
  2. Backtrack5 SQL注入漏洞探测
  3. [Buzz.Today]HP停止 webOS 设备的研发和运作
  4. JavaBean的详细及引用
  5. AI芯片浮出新玩家OURS,来者何人?新晋图灵奖得主华人弟子谭章熹
  6. ThinkPHP多语言包功能使用
  7. ubuntu局域网服务器搭建网站,ubuntu搭建局域网dns服务器
  8. 用对象的上转型对象、方法重写,抽象编程:求柱体的体积。
  9. Ubuntu使用sudo cp命令复制文件夹时出现“cp: omitting directory”问题
  10. 为什么招聘单位都要求你有ITIL证书,你知道吗?
  11. 高级JavaScript第(五)篇
  12. 用canvas画钟,实时变化的钟
  13. (转)在日企面试如何主动给自己加分
  14. 陕西师范大学第七届程序设计竞赛网络同步赛 J 黑猫的小老弟【数论/法拉数列/欧拉函数】...
  15. Arduino蓝牙控制三色灯
  16. 财务软件性能测试要求,财务报表性能测试总结 - 泊 涯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  17. Stm32文件系统FATFS(开始于2021-09-09)
  18. Axure无法同时打开多个.rp文件
  19. 思仪 4024A/B/C/D/E/F/G/H/L频谱分析仪
  20. virtualxposed使用教程_使用VirtualXposed修改手游

热门文章

  1. Idea工具如何使用
  2. XELA ROBOTICS 发布Uskin 皮肤触觉传感器
  3. nodejs+express解决微信公众号token验证失败
  4. 在 Create-React-App 中使用 TypeScript(汉化)
  5. JavaScript去除数组重复的元素且都不保留
  6. Python/numpy 设置数组某一整行列的值为0/1 修改数组行列设置为特定值
  7. 用Pythn言何实现你的股票量交模型
  8. SSD LBA 计算器
  9. 频上“热搜”的人工智能专业,主要学什么?为什么如此火爆?
  10. 麒麟服务器v10系统安装时报错,银河麒麟V10服务器版本编译安装php7.2.12