黑马程序员___java实现字符串反转

                                                                ----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------

问题:

给一个字符串,比如 “I love china”, 把字符反转后变成 “china love I”

思路:

先把字符串从第一个字符与最后一个字符对换,第二个字符和倒数第二个字符对换,这样,我们就把每一个单词位置互换了。但是我们要求单词里面字符的顺序是不能变的,所以,我们要把每一个单词里面的字符从头到尾对换一下。这样就可以得到我们想要的字符串了。

实现:

因为这里两次都会用到字符反转,所以我们就单独写一个swap的方法出来。我们对每个单词进行发转的时候,需要记录每个单词的起始点和结束点,对于第一个单词,起始点是0,最后一个单词,结束点是string.length() - 1。而中间的单词,开始点和结束点是空格的位置。

方法一:

  1. public class StringReverse {  
  2.       
  3.     public void swap(char[] arr, int begin, int end) {  
  4.         while(begin < end) {  
  5.             char temp = arr[begin];  
  6.             arr[begin] = arr[end];  
  7.             arr[end] = temp;  
  8.             begin++;  
  9.             end--;  
  10.         }  
  11.     }  
  12.       
  13.     public String swapWords(String str) {  
  14.         char[] arr = str.toCharArray();  
  15.         swap(arr, 0, arr.length - 1);  
  16.         int begin = 0;  
  17.         for (int i = 1; i < arr.length; i++) {  
  18.             if (arr[i] == ' ') {  
  19.                 swap(arr, begin, i - 1);  
  20.                 begin = i + 1;  
  21.             }  
  22.         }  
  23.         swap(arr, begin, arr.length - 1);  
  24.         return new String(arr);  
  25.     }  
  26.       
  27.     public static void main(String[] args) {  
  28.         String str = "I";  
  29.         System.out.println(new StringReverse().swapWords(str));  
  30.     }  
  31.   
  32. }  

方法二:

 

  1. public class Main {  
  2.   
  3.     public static void main(String[] args) {  
  4.         Scanner sc = new Scanner(System.in);  
  5.           
  6.         String str = sc.nextLine();  
  7.           
  8.         String[] sArr = str.split(" ");//I love java  
  9.           
  10.         List<String> list = new ArrayList<String>();  
  11.           
  12.         list = Arrays.asList(sArr);  
  13.           
  14.         Collections.reverse(list);  
  15.           
  16.         for(String word:list){  
  17.             System.out.print(word+" ");  
  18.         }  
  19.     }  
  20. }  

如果改一下题目的话,直接反转字符串,例如“abcd”,输出"dcba",

 

 

当然了方法很多,这里我提供一个jdk自带的方法,比较简单

 

 

  1. public static String reverse(String str){  
  2.         return new StringBuilder(str).reverse().toString();  
  3.     }  

 

 

  1.     public void test09() {  
  2.         String str = "hello";  
  3.   
  4.         for (int i = str.length() - 1; i >= 0; i--) {  
  5.               
  6.             char c = str.charAt(i);  
  7.               
  8.             System.out.print(c);  
  9.         }  
  10.     }  

 

转载于:https://www.cnblogs.com/miaozy/p/3677191.html

EMQX 结合MySQL实现精细化ACL权限管理实战 本文详细介绍了如何通过EMQX结合MySQL实现精细化的ACL权限管理,提升物联网设备接入和消息传输的安全性。内容包括环境准备、基础配置、权限规则设计技巧以及高级应用与性能优化方案,帮助开发者快速掌握动态生效、便于管理的权限控制方法。 阅读详情

相关推荐

海康视觉通讯配置实战:TCP与Modbus协议深度解析

本文深度解析海康视觉系统与PLC通讯的实战配置,聚焦TCP与Modbus两大核心协议。详细阐述了TCP协议如何实现精准触发拍照,包括服务器端配置、数据转换(字符串与十六进制)的关键技巧与避坑指南;同时详解了Modbus协议用于读写PLC寄存器的配置方法、变量绑定及数据类型匹配。文章结合典型应用场景与高级调试技巧,旨在帮助工程师快速打通视觉系统与自动化设备间的数据通道。

m2n3o4p5的博客 826

JavaScript两种方法实现字符串顺序颠倒

给大家一个任意的字符串,然后实现把里面的字符串顺序颠倒。例如给你"abcde",最后你要得到"edcba"。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title></title> </head> <body> <script> function Reverse(s

qq_44744450的博客 4513

C# 实现鼠标轨迹录制与回放自动化功能(附源码)

通过本文的介绍,相信大家已经掌握了鼠标轨迹录制与回放功能的实现方式。该功能在自动化测试和重复性工作中具有重要应用价值。后续可以进一步优化,增加更多扩展功能,形成一个完整的自动化工具。

weixin_72139050的博客 1755

java实现字符串反转

问题: 给一个字符串,比如 “I love china”, 把字符反转后变成 “china love I” 思路: 先把字符串从第一个字符与最后一个字符对换,第二个字符和倒数第二个字符对换,这样,我们就把每一个单词位置互换了。但是我们要求单词里面字符的顺序是不能变的,所以,我们要把每一个单词里面的字符从头到尾对换一下。这样就可以得到我们想要的字符串了。 实现: 因为这里两次都会用到字符反...

gaofen100 434

2024.6.15丨基于VFDB数据库的致病菌毒力因子注释实战指南

本文提供了一份基于VFDB数据库进行致病菌毒力因子本地化注释的实战指南。详细介绍了从环境准备、DIAMOND工具安装、VFDB数据库选择与构建,到核心比对操作及结果解读与过滤的全流程。重点阐述了本地化分析相较于在线工具在速度、稳定性和批量处理上的优势,旨在帮助微生物基因组研究人员高效、精准地识别致病菌的关键毒力因子。

weixin_29220405的博客 269

在线机器学习(OML-AD)应对时序数据概念漂移的异常检测实战

时序数据异常检测是监控系统健康、识别业务风险的核心技术。其基本原理是通过预测模型学习数据的正常模式,并将预测误差作为异常判定的依据。然而,当数据背后的统计规律随时间发生变化,即发生概念漂移时,传统的静态模型会失效,导致误报和漏报激增。在线机器学习技术通过增量学习,使模型能够随每个新数据点实时微调,为预测式异常检测提供了动态适应能力,从而在数据流持续演化的场景下保持检测的鲁棒性。这种将预测与检测无缝衔接的OML-AD框架,尤其适用于工业监控、金融风控等对实时性与资源效率要求高的领域,有效解决了概念漂移这一核心

weixin_29889665的博客 529

字符串翻转并实现“i love china“--“china love i“

整体倒置,再单个单词倒置,while实现,for更简洁一点。

m0_61633791的博客 790

Matplotlib之bar3d画3D柱状图

3D柱状图通常用于展示数据集中不同分类项的数据大小或数量。与普通的柱状图相比,3D柱状图更适合展示数据的三个维度 3D 柱状图 按行/列涂颜色 柱加阴影、描黑边 自定义座标轴名、刻度标签、范围

我走的每一步都算数 1121

一道经典面试题“I love china”的实现

来看一道经典的面试题,题目要求如下: 给定一个字符串“I love china”,编写程序完成以单词为单位的逆序,如“china love i”,并要求不允许使用第三方变量保存数据,但可以使用辅助指针变量等。 这道题主要考察字符串的遍历查找以及分类处理,首先确定算法,我们可以这样处理字符串: 将字符串整体导致:“anihc evol i” 然后再次遍历字符串,将每个单词倒置:“china lov...

我是黑核阿泽:外表黑盒,内藏智造宇宙。专注给硬件装“大脑”,让它们像人一样思考干活。这里记录嵌入式AI、智能体与机器人的进化。不堆术语,只分享如何让万物从死物变活物。一起见证硬件觉醒的奇妙时刻! 4602

ue 蓝图 c++ websocket 事件回调

ue 蓝图 c++ websocket 事件回调

jacke121的专栏 166

华为OD新系统机试真题 - 失灵的键盘(C/C++/Py/Java/Js/Go)

华为OD新系统机试真题 【失灵的键盘】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD4月15号机试真题【失灵的键盘】

qq_45776114的博客 1064

字符串反转python_Python将字符串进行反转

将字符串"ilovechina"进行反转先来个错误的例子!!!"ilovechina".reverse() #直接将字符串用reverse异常,reverse适用于list(列表)Traceback (most recent call last):File "/home/lfg/virtua/spider/lib/python3.6/site-packages/IPython/core/inter...

weixin_39986169的博客 277

[QMT量化交易小白入门]-105、震荡市最适合的策略:ETF多标的动态网格策略,回测年化收益47.81%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 2061

黑马程序员——字符串

Ctrl+alt+t选中代码然后idea会提示用什么去包围 Ctrl+alt+v自动生成左边 ctrl+d自动复制上一行的代码 字符串的遍历在写代码的时候不可以str.fori生成 要用str.length().fori进行生成 ////****fori是正遍历 反转遍历要用forr 选中遍历用快捷键shift+f6是快捷修改 首先看到方法两个字就要考虑三个问题 第一:我要干嘛?———*** 第二:我干这件事需要什么才能完成?——*** 第三:我干完了是否要把结果返回?——*** 循

m0_73476251的博客 1295

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

黑马程序员——实现字符串反转

----------------------    android培训    java培训   期待与您交流!    ----------------------                            //实现字符串翻转 /* * 将字符串转换成数组,将数组翻转,再将数组转换成字符串 */ public static void toReverse(Strin

知识搬运工,资料任你拿,包括书籍、电影、电视剧、网站、软件等,VX公人人人号:向前书局 839

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

黑马程序员_日记23_字符串反转练习

——- android培训、java培训、期待与您交流! ———-   /* 将一个字符串进行反转。将字符串中指定部分进行反转,”abcdefg”;abfedcg分析功能: 1 功能的结果,反转指定字符串——————–返回值是String类型。 2 有没有未知变量–指定字符串,起始位,结束位。–参数类型是(String str,int start,int end)思路:因为要指定部分字

itheima_1llt的专栏 486

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

字符串反转-课后程序(JAVA基础案例教程-黑马程序员编著-第九章-课后作业)

在使用软件或浏览网页时,总会查询一些数据,查询数据的过程其实就是客户端与服务器交互的过程。用户(客户端)将查询信息发送给服务器,服务器接收到查询消息后进行处理,将查询结果返回给用户(客户端)。本案例要求编写一个模拟客户端与服务端交互的程序,客户端向服务器传递一个字符串(键盘录入),服务器将字符串反转后写回,客户端再次接收到的是反转后的字符串。本案例要求使用多线程与TCP通信相关知识完成数据交互。

芝麻的博客 916

零基础JAVA——黑马程序员课程笔记

JAVA语言发展史 JAVA跨平台原理

King_ZACC的博客 2万+

黑马程序员——字符串2:练习

4个String类练习

axr1985lazy的专栏 428

Java-黑马Java学习练习-day10字符串

用户登录;遍历字符串;统计字符串次数;字符串拼接;字符串反转;金额转换;手机号屏蔽;身份证信息查看;敏感词替换;对称字符串;拼接字符串;罗马数字;调整字符串

Kox_233的博客 2073

【学习笔记】黑马程序员Java课程学习笔记(更新至第12章---集合)

黑马课程Java学习笔记(1. Java概述)1. Java概述1.1 Java语言发展史1.2 Java语言跨平台原理1.3 JRE和JDK1.4 JDK的下载和安装 1. Java概述 1.1 Java语言发展史 Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言, 2009年Oracle甲骨文公司收购Sun公司。Java之父:詹姆斯·高斯林(James Gosling)。 1.2 Java语言跨平台原理 Java可以在任意操作系统上运行,

weixin_47626968的博客 3万+

黑马程序员--java字符串

-------android培训、java培训、期待与您交流!     ----------  »知识点总结 1. 对于String对象的相等性判断来说,请使用equals()方法,而不要使用==。  2. String是常量,其对象一旦创建完毕就无法改变。当使用+拼接字符串时,会生成新的String对象,而不是向原有的String对象追加内容。  3. 字符串池,用得是享元模式(li

w1h2b1111的专栏 565

黑马程序员Java上篇笔记

对于该用法的解释:当子类继承父类时,父类所有的成员变量子类都会有,那么父类的构造方法就适用于子类,所以子类不用将父类的构造方法照搬,可以直接在构造方法的中括号中写一个super();对他的父类进行构造,父类的成员变量被赋值后(如果有带参构造的情况下)子类的成员变量也对应的改变,这样就相当于对子类进行了构造,这样处理可以简化代码。空参构造一个字符串容器的类。

2301_79860963的博客 1539

黑马程序员全套Java教程_Java基础教程_API(十四)

1、API 1.1 API概述 API(Application Programming Interface):应用程序编程接口。 比如说,编写一个机器人程序去控制机器人踢足球,程序需要向机器人发出向前跑、向后跑、射门、抢球等各种命令。机器人厂商一定会提供一些用于控制机器人的接口类,这些类中定义好了操作机器人各种动作的方法。其实,这些接口类就是机器人厂商给应用程序编程的接口,大家把这些类称为API。 Java API:指的就是JDK中提供的各种功能的Java类。这些类将底层的实现封装了起来,我们不需要关心

qq_44009317的博客 870

黑马程序员——String(字符串练习)

黑马程序员——String(字符串练习)

qq314777895的专栏 627

黑马程序员: String练习题

------- android培训、java培训、期待与您交流! ---------- 下面是毕老师给出的四道String 练习题: /* * Test the String exercises. * 1: 模仿trim方法 public String trim() * 2: 实现字符串反转;将字符串中指定部分反转 * 3: 获取一个字符串在另一个字符串中出现的次数 * 4:

MAOFULI的专栏 729
下一篇: 黑马程序员___Java静态方法,静态变量,初始化顺序
alg89136
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值