左旋转字符串(Java)-循环Index方式

题目要求

​ 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

我的思考

​我们通过观察发现,左移几位,就是开始从哪位输出,但是输出的长度还是字符串本身的长度,也就是说,左移3位,那么就是从原始字符串的index=3处开始输出,输出的个数仍然是字符串长度的个数,这样肯定就越界了,所以,我们在取index的时候用index = index % str.length;让其在超出了字符串长度就返回到最前边取值。就循环起来了、

我的代码

package jianzhioffer;

/**

* @author jiyongjia

* @create 2020/6/25 - 14:43

* @descp: 左旋字符串

* 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。

* 对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。

* 例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

*/

public class P13_LeftRotateString {

public static void main(String[] args) {

String str = "abcdefg";

String string = LeftRotateString(str, 2);

System.out.println(string);

}

public static String LeftRotateString(String str,int n) {

int length = str.length();

StringBuilder builder = new StringBuilder();

while(length>0){

builder.append(str.charAt(n++%str.length()));

//减1

length--;

}

return builder.toString();

}

}

测试输出

输入:"abcdefg" ,左移2位

输出:

java循环左一_左旋转字符串(Java)-循环Index方式相关推荐

  1. 连字符在java中怎么表示_如何在字符串之间添加连字符 - java

    我有以下字符串xxxxx,我想添加x-xxxx之类的连字符,如何使用Java? 参考方案 您可以使用String#substring(). String newstring = string.subs ...

  2. java 基础 笔试题_非常全面的java基础笔试题

    1.下列说法正确的是() (程序结构) A java程序的main方法必须写在类甩面 B java程序中可以有多个main方法 C.java程序中类名必须与文件名一样 D.JAVA程序的main方法中 ...

  3. java 数组 重复数据结构_常用数据结构及其Java实现——刷了一个月算法,薪资终于Double了!...

    大家五一假期回来还愉快吗?我就问问而已 本文采用Java语言来进行描述,帮大家好好梳理一下数据结构与算法,在工作和面试中用的上.亦即总结常见的的数据结构,以及在Java中相应的实现方法,务求理论与实践 ...

  4. java程序员第二语言_惊呆了!Java程序员最常犯的错竟然是这10个

    和绝大多数的程序员一样,我也非常的宅.周末最奢侈的享受就是逛一逛技术型网站,比如说 programcreek,这个小网站上有一些非常有意思的主题.比如说:Java 程序员最常犯的错竟然是这 10 个, ...

  5. java跟python对比_【多年的Java程序员总结Java与Python的对比 】

    多年的Java程序员总结Java与Python的对比 作为一个有多年职场经验的技术员,每当我遇到同行时,我都会问一句"你现在用的是什么语言?你喜欢用哪种语言?"至于答案,容后再说. ...

  6. java 开发书籍 目录_《零基础 Java 开发 》全书目录

    第1部分 Java开发基础 第一章 搭建Java开发环境 1.1 Java简介 1.2 Java开发环境搭建 1.3 Java语⾔的功能 1.4 使用Eclipse开发Java程序 1.5 使用IDE ...

  7. java list e 查找_源码(04) -- java.util.ListE

    java.util.List 源码分析(JDK1.7) ------------------------------------------------------------------------ ...

  8. python遍历循环怎么理解_聊聊python中的循环遍历

    python之循环遍历 关于循环遍历大家都知道,不外乎for和while,今天我在这写点不一样的循环和遍历.在实践中有时会遇到删除列表中的元素,那么循环遍历列表删除指定元素该怎么做呢? 还是直接上代码 ...

  9. 李兴华java视频在线观看_李兴华Java开发实战经典视频教程_IT教程网

    资源名称:李兴华Java开发实战经典视频教程 资源目录: [IT教程网]010201_[第2章:简单Java程序]_简单Java程序 [IT教程网]010301_[第3章:Java基础程序设计]_Ja ...

最新文章

  1. android 伸缩工具栏,看,这个工具栏能伸缩折叠——Android CollapsingToolbarLayout使用介绍...
  2. java,使用get、post请求url地址
  3. 解决npm下载包失败的问题
  4. c 语言字符串转二进制,在C ++中将字符串转换为二进制序列
  5. gtj2018如何生成工程量报表_广联达BIM土建计量平台GTJ2018
  6. 彻底弄懂dalvik字节码【一】
  7. 对java面向对象的三大特征的理解_Java面向对象的三大特征是什么?
  8. vmware的win98安装声音驱动
  9. bootstrap panel 和table的使用
  10. 《ASP.NET Core 高性能系列》致敬伟大的.NET斗士甲骨文
  11. python条件语句练习题_python学习-7 条件语句 while循环 + 练习题
  12. 《剑指Offer》 包含min函数的栈
  13. 必备知识:大数据处理应遵循的原则
  14. 飞书成小米数万员工协作工具,雷军:越用越顺手
  15. 关于单点登录的简单原理和实现步骤
  16. [译] 关于 SPA,你需要掌握的 4 层 (1)
  17. 计算机说课教案模板,初中信息技术说课稿通用模板大全
  18. 什么是悬空 Docker 镜像?
  19. abc F - Endless Walk
  20. windows定时关机命令 取消定时关机命令 查看DNS缓存命令 清除DNS缓存命令

热门文章

  1. html的排版标题的是,HTML 5结构排版布局
  2. android 相册 uri空,Android---相册getContentResolver().query结果为空指针
  3. 电力电子技术 matlab仿真指导,在_电力电子技术_课程教学中展开Matlab仿真训练_唐贤伦...
  4. fpga摄像头模块_FPGA开源项目:双目测距(一)之双目图像采集显示以及图片保存...
  5. UE4多线程任务系统详解
  6. 矩阵每一行重复_【剑指offer】65 矩阵中的路径
  7. mac远程redis_Linux:使用Mac远程(局域网内)访问Ubuntu主机上的Redis服务
  8. 【转】C++/CLI简介(什么是C++/CLI) -------C++/CLI 编程系列一
  9. async await 的前世今生(Updated)
  10. 百度云cdn设置州五年制大专_图说云原生:让云原生转型变得像种白菜一样简单...