zoukankan      html  css  js  c++  java
  • Java --实现字符串的反转

    比如字符串“1234567”(在函数中我用str1表示) ---->"5671234",相当于整体向右平移3个单位(在函数中我用m表示),可以分为以下几步:

        ps: "1234"为第一部分,“567”为第二部分,同时为了便于调换位置,我们将字符串转化为数组的形式(在函数中我用str表示)

       1) 将 第一部分中的字符串依次首(在函数中我用go表示)(在函数中我用to表示)互换,即“4321”

       2) 将第二部分中的字符串同样依次首尾互换,即“765”

       3) 将字符串整体依次进行互换,即“5671234”

      具体实现如下:

           

    public class test004 {
    	char tmp;
    	public void func(char[] str,int go , int to){
    		for(int x=go,y=to;x<y;x++,y--){
    			//首尾互换值
    			tmp =str[x];
    			str[x]=str[y];
    			str[y]=tmp;
    		}
    	}
    	public String Func(String str1,int m){
    		//将字符串转化为数组
    		char[] str = str1.toCharArray();
    		
    		//如果m > str.length时,对 m取余
    		m %= str.length;
    		
    		//调用func方法,将第一部分反转
    		func(str,0,str.length -m -1);
    		
    		//调用func方法,将第二部分反转
    		func(str,str.length -m,str.length-1);
    		
    		//调用func方法,将整体反转
    		func(str,0,str.length -1);
    		
    		//将str转化为字符串类型并返回
    		return new String(str);
    		}
    	
    	public static void main(String[] args) {
    	    test004 test =new test004();
    		System.out.print(test.Func("1234567",3));
    		
    //	    System.out.print(new test004().Func("1234567",3));
    	
    	  }
       }
    

     运行代码:

    5671234
    

        

        

        

     

  • 相关阅读:
    linux & xp 双系统 重装的问题
    判断推理类试题的复言命题考点与题型总结
    Oracle、MySQL、SQL Server数据库的数据类型的差异
    java环境变量设置和问题及解决方法
    如何正确卸载MySQL,主要是删除注册表中的垃圾信息
    J2EE经典面试题及答案
    正则表达式
    囚犯的两难处境
    MySQL 数值数据类型
    linux学习之SHELL脚本
  • 原文地址:https://www.cnblogs.com/yin-tao/p/7298066.html
Copyright © 2011-2022 走看看