数组和字符串的反转-java实现

  数组的反转,这是一个比较普遍的话题,在这里我只是想留下自己的两种做法以方便做深刻的记忆,若是对他人起到作用,拿甚是欢喜,当然,还是比较希望有人来此浏览之后留下自己的足迹,如评评论,甚至是点个赞都行!

  废话不多说,先介绍数组的反转

  第一种方法:直接遍历数组arr,然后将遍历的总次数设为数组长度的一般,每一次的遍历进行这样子的操作:交换数组“交换数组之后的元素“对应的位置。如数组下标0将对应arr.length-1; 下标1将对应arr.length-2 ;以此类推...

  代码Java实现如下

  

public void ArrayRotateOne(int[] arr){
		//重点在于遍历 次数是数组元素的一半    而且还得注意进行数组元素的交换
		for (int i = 0; i < arr.length/2; i++) {
			int temp=arr[i];
			arr[i]=arr[arr.length-1-i];
			arr[arr.length-1-i]=temp;
		}
		System.out.println("第一种方式反转数组后,数组的元素: ");
		
		for (int i : arr) {
			System.out.print(i+" ");
		}
		System.out.println();
	}



  数组的反转第二种方法:就是在数组的前后设定两个跑标x,y,初始化时候另x=0,y=arr.length-1;而遍历的次数则为x<y;这样子每一次的遍历都进行数组元素下标为x,y的交换,交换之后x继续往前跑,y继续往前窜(感觉有点”快速排序的味道“)

  java实现代码如下


public void ArrayRotateTwo(int[] arr){
		//这样的方式重点在于:设置前后两个跑标   ---  感觉这有点像快排
		for(int x=0,y=arr.length-1;x<y;x++,y--){
			int temp=arr[x];
			arr[x]=arr[y];
			arr[y]=temp;
		}
		
		for (int i : arr) {
			System.out.print(i+" ");
		}
		System.out.println();
	}



  接下来将字符串的反转的两种方法

  第一种方法:首先将字符串转化为字符数组char[],然后就可以按照上面的方面转化为”数组的反转“进行相应的操作

  java代码


//字符串的反转方式1:将字符串转化为字符数组
		char charVal[]=str.toCharArray();//<span style="font-family: Arial, Helvetica, sans-serif;">将字符串转化为字符数组</span>

		for (int i = 0; i < charVal.length/2; i++) {
			char temp=charVal[i];
			charVal[i]=charVal[charVal.length-1-i];
			charVal[charVal.length-1-i]=temp;
		}
		
		for (char i : charVal) {
			System.out.print(i+" ");
		}
		System.out.println();



  第二种方法:采用java中String固有的api函数charAt(index)进行元素的前后元素的交换。其中

charAt(int index) 用于


返回指定索引处的

char 值。

  代码java如下


//字符串反转方式2:采用String固有的charAt(index)方式
		char[] charValTwo=new char[str.length()];
		for (int i=str.length()-1;i>=0;i--) {
			charValTwo[i]=str.charAt(i);
		}
		str=String.valueOf(charValTwo);
		System.out.println("现在的字符串: "+String.valueOf(charVal));