Q421:把字符串前面的若干个字符转移到字符串的尾部

publicclass Q421把字符串前面的若干个字符转移到字符串的尾部 {
   /**
    * 题目:把字符串前面的若干个字符转移到字符串的尾部
    * 题目说明:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串“abcdefg”和数字2,该函数将返回左旋转2位得到的结果“cdefgab”。
    * 解题思路:先把字符串从k处进行分割,分割成两个字符串。然后利用reverse()函数进行翻转。之后再将两个子字符串进行翻转。
    */
   publicstatic void main(String[] args) {
      Q421把字符串前面的若干个字符转移到字符串的尾部 test =new Q421把字符串前面的若干个字符转移到字符串的尾部();
      test.reverseStrKChar("abcdefg", 2);
   }
   publicvoid reverseStrKChar(String str, int k){
      if(str ==null || k < 0 || k > str.length()){//合法性判断,主要防止越界异常
         return ;
      }
      String[] split = {str.substring(0,k),str.substring(k, str.length())};//将字符串从K的位置分成两个子字符串数组中
      StringBuffer strBuffer = new StringBuffer();
      for(String s : split){
         strBuffer.append(reverse(s));//将字符串翻转后写入到StringBuffer中,先翻转部分字符
      }
     System.out.println(reverse(strBuffer.toString()));//将翻转后的字符在进行整体翻转,即将ab,调整到字符串的最后边
     
   }
   public String reverse(String str){
      char[] array = str.toCharArray();//将字符串转换成字符数组
      for(int i = 0; i < (array.length+1)/2; i++){//实现字符串的翻转,第一个和最后一个交换,一次类推
         char temp = array[i];
         array[i] = array[array.length-1-i];
         array[array.length-1-i] = temp;
      }
      return String.valueOf(array);//返回翻转之后的字符串
   }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值