将字符串按照传入的参数进行逆序

来源:互联网 发布:如何开通淘宝达摩盘 编辑:程序博客网 时间:2024/06/05 01:18

介绍:

将"ABCDE"这个字符串,从第一位开始进行逆序,逆转3位。得到"CBADE"

思路:

1.因为我们知道String是不能被修改的,所以我们需要将这个字符串转为字符数组2.对这个数组中需要逆序的地方进行遍历操作,交换位置。3.返回这个数组,并且将其转换为String.

具体代码:

package 初级;public class 字符串逆序 {    public static void main(String[] args) {        String answer = change("ABCDE",2,3);        System.out.print("逆序后的字符串为:" + answer);    }    private static String change(String str, int start, int length) {        if(start>=str.length()-1){            System.out.println("你的start比字符串长度还长,逆序啥?");        }else if((start+length)>str.length()){            System.out.println("你想逆序的字符串比本来的字符串都还要长,怎么逆序!!");        }else{            char[] arr = str.toCharArray();//返回的是一个char数组            int end = start+length-1;            for(int i=0;i<length;i++){                if(start >= end){                    break;                }                char temp ;                temp = arr[start];                arr[start] = arr[end];                arr[end] = temp;                start++;                end--;            }            String answer = new String(arr);            return answer;        }        return null;    }   }

总结:

我最开始遇到的困难是没有去判断这个 start 和 end 之间的关系,所以每次循环之后本来已经逆序转换了,但是因为没有及时跳出循环,所以再次交换,导致和原来的字符串一样,并没有逆序。

题外话:

今天老师讲的动态规划里面的"0-1背包"问题,我其实还是有点迷糊。我脑子比较笨,所以不着急,一步一步来,等把算法初级这一类弄完,就开始进行中级的挑战。
0 0
原创粉丝点击