数据结构之数组和字符串的反转java实现

数组和字符串的反转-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));
		



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修罗debug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值