——- android培训、java培训、期待与您交流! ———-
/*
将一个字符串进行反转。将字符串中指定部分进行反转,”abcdefg”;abfedcg
分析功能:
1 功能的结果,反转指定字符串——————–返回值是String类型。
2 有没有未知变量–指定字符串,起始位,结束位。–参数类型是(String str,int start,int end)
思路:因为要指定部分字符串进行反转,就要利用到脚标,继而要利用数组,所以思路如下。
1 把字符串全部转换为字符数组–char[] toCharArray()
2 把数组指定元素反转———-自定义一个功能反转数组reverse()
3 把字符数组全部转换为字符串–构造函数法string new(char[] ch)。或者静态方法static String copyValueOf(char[] ch);
4 将指定反转的部分做参数传递。
数组反转复习:
设置头尾指针,当头指针小于尾指针的时候首尾交换,首尾指针自增的同时尾指针自减。
利用三变量法进行交换操作。
小结:功能要尽量细分,封装,不要全部放一堆,这就是抽象的设计思想,这样以后改起来会很方便的。
注意:功能都是包含头不包含尾的!!
*/
class StringReverseDemo
{
public static void main(String[] args)
{
//目标字符串
String str1 = "abcdefghijk";
//反转全部字符串
String str2 = reverseString(str1);
System.out.println(str2);
//反转指定字符串
String str3 = reverseString(str1,0,3);//注意:包含头不包含尾
System.out.println(str3);
}
//反转指定字符串
public static String reverseString(String str,int start ,int end)
{
//1 字符串转字符数组
char[] CharArray = str.toCharArray();
//2 指定数组元素反转
reverseArray(CharArray,start,end);
//3 数组转字符串
return new String(CharArray);
}
//反转全部字符串
public static String reverseString(String str)
{
return reverseString(str,0,str.length());
}
//指定数组元素反转
public static void reverseArray(char[] CharArray,int x,int y)
{
//设置头尾指针
int start = x,end = y-1;
//当头指针小于尾指针时,首尾交换
while(start<end)
swap(CharArray,start++,end--);
}
//数组全部反转
public static void reverseArray(char[] CharArray)
{
reverseArray(CharArray,0,CharArray.length);
}
//数组指定位置互换操作
public static void swap(char[] ch,int x,int y)
{
//设置一个临时变量,三变量法
char temp = ch[x];
ch[x] = ch[y];
ch[y] = temp;
}
}
原文地址:http://blog.csdn.net/itheima_1llt/article/details/44977149