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

化妆品网站 源码山西省建设厅政务中心网站

化妆品网站 源码,山西省建设厅政务中心网站,专业网页设计工具,微博内容放到wordpress在本文中#xff0c;我们将向您展示几种在Java中将String类型的字符串字母倒序的几种方法。 StringBuilder(str).reverse()char[]循环与值交换byte循环与值交换apache-commons-lang3如果是为了进行开发#xff0c;请选择StringBuilder(str).reverse()API。出于学习的目的我们将向您展示几种在Java中将String类型的字符串字母倒序的几种方法。 StringBuilder(str).reverse()char[]循环与值交换byte循环与值交换apache-commons-lang3如果是为了进行开发请选择StringBuilder(str).reverse()API。出于学习的目的我们可以研究char[]和byte方法其中涉及到值互换和移位运算技术这些技术对于了解StringBuilder(str).reverse()API黑匣子背后原理非常有帮助。 1. StringBuilder(str).reverse() 在Java中我们可以使用StringBuilder(str).reverse()使字符串字母倒序。 public class ReverseString1 {public static void main(String[] args) {String str Reverse a String in Java;StringBuilder sb new StringBuilder(str).reverse();System.out.println(sb.toString());} }输出结果 avaJ ni gnirtS a esreveR2.char[] 首先我们将字符串转换为char数组并逐个循环char数组并使用temp变量交换值。 public class ReverseString2 {public static void main(String[] args) {String str Hello World;System.out.println(reverse(str)); // dlroW olleH}public static String reverse(String input) {if (input null || input.length() 0)throw new IllegalArgumentException(Please provide an input!);char[] result input.toCharArray();int startIndex 0;int endIndex result.length - 1;char temp;for (; endIndex startIndex; startIndex, endIndex--) {temp result[startIndex];result[startIndex] result[endIndex];result[endIndex] temp;}return new String(result);}} 上面的算法需要5个循环长度/ 2来使字符串倒序“ Hello World”。 ------------------------------------ H e l l o W o r l d ------------------------------------ 0 1 2 3 4 5 6 7 8 9 10 ------------------------------------Loop #1 - Swap index 0 - index 10 ------------------------------------ {d} e l l o W o r l {H} ------------------------------------ {0} 1 2 3 4 5 6 7 8 9 {10} ------------------------------------Loop #2 - Swap index 1 - index 9 ------------------------------------ d {l} l l o W o r {e} H ------------------------------------ 0 {1} 2 3 4 5 6 7 8 {9} 10 ------------------------------------Loop #3 - Swap index 2 - index 8 ------------------------------------ d l {r} l o W o {l} e H ------------------------------------ 0 1 {2} 3 4 5 6 7 {8} 9 10 ------------------------------------Loop #4 - Swap index 3 - index 7 ------------------------------------ d l r {o} o W {l} l e H ------------------------------------ 0 1 2 {3} 4 5 6 {7} 8 9 10 ------------------------------------Loop #5 - Swap index 4 - index 6 ------------------------------------ d l r o {W} {o} l l e H ------------------------------------ 0 1 2 3 {4} 5 {6} 7 8 9 10 ------------------------------------3. Byte[] – StringBuilder(str).reverse(str) 以下代码段类似于StringBuilder(str).reverse()的内部实现UTF16内容除外。 import java.nio.charset.StandardCharsets;public class ReverseString3 {public static void main(String[] args) {String str Hello World;System.out.println(reverse(str));}public static String reverse(String input) {if (input null || input.length() 0)throw new IllegalArgumentException(Please provide an input!);byte[] val input.getBytes(StandardCharsets.UTF_8);int length val.length - 1;for (int start (length - 1) 1; start 0; start--) {int end length - start;byte temp val[start];val[start] val[end];val[end] temp;// debugging//System.out.println(String.format(start%s, end%s, start, end));}return new String(val);}}最令人困惑的部分是右移运算符(length - 1) 1这是什么意思查看下面的8位示例您可以找到规律吗 System.out.println(101); // 10 - 5 0000 1010 10 0000 0101|0 10 1 5System.out.println(41); // 4 - 2 0000 0100 4 0000 0010|0 4 1 2System.out.println(1001); // 100 - 50 0110 0100 100 00110 010|0 100 1 50System.out.println(71); // 7 - 3 0000 0111 7 0000 0011|1 7 1 3对于数字每右移1位金额将减少该值的一半并四舍五入。这(length - 1) 1试图找出字符串的中间点。 number 1 round_down(number/2) or Math.flooa(number/2)值交换从内部开始然后扩展到外部。 for (int start (length - 1) 1; start 0; start--) {int end length - start;byte temp val[start];val[start] val[end];val[end] temp; }上面的算法图示如下 ------------------------------------ H e l l o W o r l d ------------------------------------ 0 1 2 3 4 5 6 7 8 9 10 ------------------------------------Loop #1 - Swap index 4 - index 6 ------------------------------------ H e l l {W} {o} o r l d ------------------------------------ 0 1 2 3 {4} 5 {6} 7 8 9 10 ------------------------------------Loop #2 - Swap index 3 - index 7 ------------------------------------ H e l {o} W o {l} r l d ------------------------------------ 0 1 2 {3} 4 5 6 {7} 8 9 10 ------------------------------------Loop #3 - Swap index 2 - index 8 ------------------------------------ H e {r} o W o l {l} l d ------------------------------------ 0 1 {2} 3 4 5 6 7 {8} 9 10 ------------------------------------Loop #4 - Swap index 1 - index 9 ------------------------------------ H {l} r o W o l l {e} d ------------------------------------ 0 {1} 2 3 4 5 6 7 8 {9} 10 ------------------------------------Loop #5 - Swap index 0 - index 10 ------------------------------------ {d} l r o W o l l e {H} ------------------------------------ {0} 1 2 3 4 5 6 7 8 9 {10} ------------------------------------4. Apache commons-lang3 对于Apache commons-lang3库我们可以使用StringUtils.reverse反转字符串和StringUtils.reverseDelimited反转单词。 pom.xml dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.10/version /dependencyimport org.apache.commons.lang3.StringUtils;public class ReverseString3 {public static void main(String[] args) {System.out.println(StringUtils.reverse(Hello World Java)); // reverse stringSystem.out.println(StringUtils.reverseDelimited(Hello World Java, )); // reverse words} }输出结果 avaJ dlroW olleHJava World Hello查看其源代码Apache-commons-lang3其实是使用new StringBuilder(str).reverse()来反转字符串。 package org.apache.commons.lang3;public class StringUtils {public static String reverse(final String str) {if (str null) {return null;}return new StringBuilder(str).reverse().toString();}//... }欢迎关注我的博客里面有很多精品合集 本文转载注明出处必须带连接不能只转文字字母哥博客。觉得对您有帮助的话帮我点赞、分享您的支持是我不竭的创作动力 。另外笔者最近一段时间输出了如下的精品内容期待您的关注。 《手摸手教你学Spring Boot2.0》《Spring Security-JWT-OAuth2一本通》《实战前后端分离RBAC权限管理系统》《实战SpringCloud微服务从青铜到王者》《VUE深入浅出系列》
http://www.zqtcl.cn/news/87371/

相关文章:

  • 怎么建设一个购物网站设计培训网页班
  • 网站 谁建设谁负责开发公众号平台
  • 做企业宣传片的网站网站建设的维护
  • 网站备案需要的资料山东省住房和城乡建设厅二级建造师
  • 做网站老板嫌弃太丑谁的锅交互设计考研院校
  • 网站网站建设公司上海网站的系统建设方式有哪些方面
  • 网站建设前期策划方案帮人做非法网站吗
  • 网站建设上如何提高市场竞争力自己建网站做代理商
  • 建设网站哪家便宜iis 网站属性
  • 免费建个人手机网站云服务器网站搭建
  • 山东省建设执业资格注册管理中心网站flash代码做网站教程
  • 电子商务网站建设步骤有什么江阴网站建设工作室
  • WordPress不关站备案插件广西建设网人员查询网
  • 龙华网站建设php做网站导购模板
  • 网站建设与服务费是什么服务黑龙江建设厅网站首页
  • 网站页面权重php用什么工具做网站
  • 应用asp做网站wordpress html 代码编辑器
  • 梅州英文网站建设网站域名设计找谁
  • 邢台网站建设地方山西本土网站建设
  • 个人网站建设价格表江苏交通建设监理协会网站
  • 成都网站制作定制站长seo查询工具
  • 同一虚拟主机 2个网站盐城网站建设厂商
  • 网站模板上传到那个目录海外贸易平台
  • 吉安市建设局施工管理站网站山西建设局网站首页
  • 招聘网站做两份简历wordpress行业主题
  • 网站制作需求文档无线网站应建设在什么地方
  • 网站建设类营销型网站模板免费下载
  • 网站开发规范织梦网站安装教程
  • 网站制作呼和浩特买卖交易网
  • 昆明网站制作方案定制网站服务器建设软件