/*
1.模拟一个trim方法,去除字符串两端的空格
思路:
1.判断字符串第一个位置是否是空格,如果是继续向下判断,
直到不是空格为止,结尾处判断空格也是如此。
2.当开始和结尾都判断到不是空格时,就是要获取的字符串
应用:就是判断用户名密码输入前后去掉空格
2.将一个字符串进行反转,将字符串中指定部分进行反转,"abcdefg";abcfedcg
思路:
1.曾经学习过对数组的元素进行反转
2,将字符串变成数组,对数组进行反转。
3.将反转后的数组变成字符串。
4,只要将反转的部分和结束为止作为参数传递即可
class StringTes1
{
public static void main(String args[])
{
String s= " ab cd ";
sop("("+s+")");
//s=myTrim(s);
//sop("("+s+")");
sop("("+reverseString(s)+")");
}
public static void sop(String str)
{
System.out.println(str);
}
//练习二:将字符串进行反转
public static String reverseString(String str,int start,int end)
{
//第1步:将字符串转换成数组,
char[] chs = str.toCharArray();
//第二步骤:将数组进行反转
reserve(chs,start,end);
//第三部:将反转后的数组转换成字符串;有两种,一种是构造函数,一种是静态方法
return new String(chs);
}
public static String reverseString(String str)
{
return reverseString(str,0,str.length()-1);
}
//反转功能
private static void reserve(char[] arr,int x,int y)
{
//包含头,不包含尾,所以end = y-1
for(int start=x,end=y-1; start<end; start++,end--)
{
swap(arr,start,end);
}
}
//位置互换功能,功能要尽量细分(独立)
private static void swap(char[] arr,int x,int y)
{
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
//练习一:去除字符串两端空格
public static String myTrim(String str)
{
int start = 0,end = str.length()-1;
while(start<=end&&str.charAt(start)==' ')
start++;
while(start<=end&&str.charAt(end)==' ')
end--;
return str.substring(start,end+1)
}
}