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