黑马程序员技术交流社区
标题:
Java基础--String练习1--字符串反转和去除字符串两端空格
[打印本页]
作者:
michael_wlq
时间:
2015-9-14 19:24
标题:
Java基础--String练习1--字符串反转和去除字符串两端空格
/**
*
要求:
* 1. 模拟一个trim方法,去除字符串两端的空格。
* 思路:
* 1. 判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止,结尾处判断空格也是如此;
* 2. 当开始和结尾都判断到不是空格时,就是要获取的字符串。
*
* 2. 将一个字符串进行反转,将字符串中指定部分进行反转,"abcdefg";abfedcg
* 思路:
* 1. 曾经学习过对数组的元素进行反转;
* 2. 将字符串变成数组,对数组反转;
* 3. 将反转后的数组变成字符串;
* 4. 只要将或反转的部分的开始和结束位置作为参数传递即可。
*/
示例:
public class StringTest2 {
public static void sop(String str) {
System.out.println(str);
}
public static void main(String[] args) {
String s = " ab cd ";
sop("(" + s + ")");
// s = myTrim(s);
// sop("("+s+")");
sop("(" + reverseString(s) + ")");
}
/**
* 练习二:将字符串反转
*
* 思路: 1. 将字符串变成数组; 2. 对数组反转; 3. 将数组变成字符串。
*/
public static String reverseString(String s, int start, int end) {
// 字符串变数组。
char[] chs = s.toCharArray();
// 反转数组。
reverse(chs, start, end);
// 将数组变成字符串。
return new String(chs);
}
public static String reverseString(String s) {
return reverseString(s, 0, s.length());
}
private static void reverse(char[] arr, int x, int y) {
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);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2