当前位置: 首页 > news >正文

Java重修笔记 第三十八天 String翻转

  • String翻转

1. 要求将字符串指定的部分进行翻转

public class StringHomework {public static void main(String[] args) {// 要求将字符串指定的部分进行翻转// 例如:abcdef ---> a edcb f   1, 4System.out.print("转换前: ");String s = "abcdef";String s1 = null;System.out.println(s);try {System.out.println("=========");System.out.print("转换后: ");System.out.println(StringHomework.reverse(s, 1, 4));} catch (NullPointerException e) {System.out.println(e.getMessage() + "传入的字符串为null!");}}public static String reverse(String str, int start, int end) throws NullPointerException{// 先将字符串转换为字符数组char[] chars = str.toCharArray();// 判断 str 是否合法if (str.isEmpty()) {throw new RuntimeException("传入的字符串数据不合法!");}// 判断 start 和 end 是否合法if (start < 0 || end > chars.length || start > end) {throw new RuntimeException("传入的起始位置数据不合法!");}// 进行数组翻转, 提取出要反转的部分char[] chars1 = new char[end - start + 1];System.arraycopy(chars, start, chars1, 0, chars1.length);// return new String(chars1);// 翻转 chars1 字符数组for (int i = 0; i < chars1.length / 2; i++) {char temp = chars1[i];chars1[i] = chars1[chars1.length - i - 1];chars1[chars1.length - i - 1] = temp;}// return new String(chars1);// 将原数组数据替换System.arraycopy(chars1, 0, chars, start, chars1.length);return new String(chars);}
}

运行结果:

相关文章:

  • 初阶数据结构之计数排序
  • 【电子通识】IPC-A-600中对验收标准的定义
  • chromedriver下载地址大全(包括124.*后)以及替换exe后仍显示版本不匹配的问题
  • 深信达反向沙箱:构筑内网安全与成本效益的双重防线
  • latex中的删除线[当导入包` \usepackage{soul}`不起作用时,导入包`\usepackage{ulem}`]
  • 计算机毕业设计Python深度学习房价预测 房价可视化 链家爬虫 房源爬虫 房源可视化 卷积神经网络 大数据毕业设计 机器学习 人工智能 AI
  • SQL注入(head、报错、盲注)
  • Java-接口查询没有值,需要多次调用直到有值,实现方法
  • Java 中 String 类型的特点
  • mq-案例
  • 18105 银行的叫号顺序
  • QT事件机制理解
  • 深入探讨 ElementUI 动态渲染 el-table
  • 移植bash到openharmony
  • Django后端架构开发:Django 与 Celery 的深度集成
  • 自己简单写的 事件订阅机制
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Cookie 在前端中的实践
  • CSS盒模型深入
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript实现分页效果
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • yii2中session跨域名的问题
  • 闭包--闭包之tab栏切换(四)
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 深入浏览器事件循环的本质
  • PostgreSQL之连接数修改
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (12)Linux 常见的三种进程状态
  • (20050108)又读《平凡的世界》
  • (27)4.8 习题课
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (ZT)出版业改革:该死的死,该生的生
  • (第二周)效能测试
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (六)DockerCompose安装与配置
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)Windows2003安全设置/维护
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .Net小白的大学四年,内含面经
  • /dev/sda2 is mounted; will not make a filesystem here!
  • ::前边啥也没有
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [android] 请求码和结果码的作用
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [C++进阶]map和set的相关题目
  • [Foreman]解决Unable to find internal system admin account
  • [GN] Vue3.2 快速上手 ---- 核心语法2
  • [GUET-CTF2019]encrypt
  • [IE编程] IE中对网页进行截图的编程接口
  • [IntelliJ IDEA插件]推荐一款简单方便的插件CodeChrono
  • [LeeCode]-Divide Two Integers 不用乘除的除法运算