/*
1.模擬一個trim方法,去除字符串兩端的空格
思路:
1.判斷字符串第一個位置是否是空格,如果是繼續(xù)向下判斷,
直到不是空格為止,結(jié)尾處判斷空格也是如此。
2.當(dāng)開始和結(jié)尾都判斷到不是空格時,就是要獲取的字符串
應(yīng)用:就是判斷用戶名密碼輸入前后去掉空格
2.將一個字符串進(jìn)行反轉(zhuǎn),將字符串中指定部分進(jìn)行反轉(zhuǎn),"abcdefg";abcfedcg
思路:
1.曾經(jīng)學(xué)習(xí)過對數(shù)組的元素進(jìn)行反轉(zhuǎn)
2,將字符串變成數(shù)組,對數(shù)組進(jìn)行反轉(zhuǎn)。
3.將反轉(zhuǎn)后的數(shù)組變成字符串。
4,只要將反轉(zhuǎn)的部分和結(jié)束為止作為參數(shù)傳遞即可
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);
}
//練習(xí)二:將字符串進(jìn)行反轉(zhuǎn)
public static String reverseString(String str,int start,int end)
{
//第1步:將字符串轉(zhuǎn)換成數(shù)組,
char[] chs = str.toCharArray();
//第二步驟:將數(shù)組進(jìn)行反轉(zhuǎn)
reserve(chs,start,end);
//第三部:將反轉(zhuǎn)后的數(shù)組轉(zhuǎn)換成字符串;有兩種,一種是構(gòu)造函數(shù),一種是靜態(tài)方法
return new String(chs);
}
public static String reverseString(String str)
{
return reverseString(str,0,str.length()-1);
}
//反轉(zhuǎn)功能
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);
}
}
//位置互換功能,功能要盡量細(xì)分(獨立)
private static void swap(char[] arr,int x,int y)
{
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
//練習(xí)一:去除字符串兩端空格
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)
}
}