热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

字符串反转的进一步应用----单词反转

字符串反转:如给定一字符串goodbyeboy.反转之后:.yobeybdoog实现思路:分别从第一个字符和最后一个字符,同时向中间遍历,交换遇到的每一个字符。JAVA实

字符串反转:如给定一字符串

good bye boy.

反转之后:

.yob eyb doog 

实现思路:

分别从第一个字符和最后一个字符,同时向中间遍历,交换遇到的每一个字符。JAVA实现代码如下:字符数组str存储待反转的字符串。

private static void inverse(char[] str, int start, int end){
        int i = start;
        int j = end;
        while(i < j){
            char tmp = str[i];
            str[i] = str[j];
            str[j] = tmp;
            i++;
            j--;
        }
    }

 

------------------------------------分割线--------------------------

问题描述:给定一字符串,以空格作为每个单词的分隔符,反转单词。

示例:

good bye boy.

反转之后:

boy. bye good

反转单词,其实质是在上面反转字符串的基础之上,再把每个单词反转一遍即可。

good bye boy.     ---经过字符串反转处理--->     .yob eyb doog    ---再对每个单词反转---> boy. bye good

 

先进行字符串反转之后,使用index遍历该字符串,碰到空格时,反转该单词。

public class InverseWord {    
    public static char[] inverseWord(char[] str){
        inverse(str, 0, str.length - 1);
        
        int index = 0;
        int start = 0;//记录每次待反转的单词的起始位置
        while(index < str.length){
            if(str[index] == ' '){
                inverse(str, start, index-1);
                start = index+1;//待反转的下一个单词的起始位置
            }
            index++;
        }
        return str;
    }
    
    
    private static void inverse(char[] str, int start, int end){
        int i = start;
        int j = end;
        while(i < j){
            char tmp = str[i];
            str[i] = str[j];
            str[j] = tmp;
            i++;
            j--;
        }
    }
}

 


推荐阅读
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • 字符串中特定模式出现次数的计算方法
    本文详细探讨了如何高效地计算字符串中特定模式(如'pat')的出现次数,通过实例分析与算法解析,帮助读者掌握解决此类问题的方法。 ... [详细]
  • 本文将详细介绍如何使用Java编程语言生成指定数量的不重复随机数,包括具体的实现方法和代码示例。适合初学者和有一定基础的开发者参考。 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • Java中如何判断一个对象是否为Long类型
    本文介绍了一种在Java中判断对象是否属于Long类型的方法,通过定义一个特定的方法来实现这一功能,该方法能够准确地识别并返回结果。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 1.绑定htmlcss1.1对象语法:  传给v-bind:class一个对象,以动态地切换class   ... [详细]
  • 本文详细介绍了PostgreSQL与MySQL在SQL语法上的主要区别,包括如何使用COALESCE替代IFNULL、金额格式化的方法、别名处理以及日期处理等关键点。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
author-avatar
jhb852
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有