方法一:
(bxdteachers method)
package StringClass;
/*
* 4,模拟一个trim功能一致的方法。去除字符串两端的空白
* 思路:
* 1,定义两个变量。
* 一个变量作为从头开始判断字符串空格的角标。不断++。
* 一个变量作为从尾开始判断字符串空格的角标。不断--。
* 2,判断到不是空格为止,取头尾之间的字符串即可。
*/
public class TeachingCodeStringTest_4 {
/**
* @param args
*/
public static void main(String[] args) {
String s = " ab c ";
s = myTrim(s);
System.out.println("-" + s + "-");
}
public static String myTrim(String s) {
int start = 0, end = s.length() - 1;
while (start <= end && s.charAt(start) == ' ') {
start++;
}
while (start <= end && s.charAt(end) == ' ') {
end--;
}
return s.substring(start, end + 1);
}
}
方法二:
(能力有待加强,特殊情况也需多多考虑)
(my method)
package StringClass;//模拟一个trim功能一致的方法。去除字符串两端的空白
public class StringTest_4 {//my method
public static void main(String[] args) {
String a = " s123sdasdsa sad ";//两种可能的结果1:正常包含空格 2:全部都是空格
String b=" ";
System.out.println(SimulateTrim(b));
}
// 思路如下
// 首先将整串转化为字符数组,然后用两个变量分别记录前端非空格角标与后端非空格角标位置,最后用
//str.substring(beginIndex, endIndex)返回子串
public static String SimulateTrim(String a) {
char[] ch = a.toCharArray();//首先转换为字符数组
int beginIndex=0,endIndex=ch.length-1;
for (int i = 0; i < ch.length - 1&&i<=endIndex; i++) {// 记录前端非空格角标位置
if (ch[i] == ' ') {
beginIndex++;
} else {
break;
}
}
for (int i = ch.length-1; i>=0&&i>=beginIndex; i--) {//记录后端非空格角标位置
if(ch[i]==' ') {
endIndex--;
}else {
break;
}
}
return a.substring(beginIndex, endIndex+1);//注意 str.substring(beginIndex, endIndex)方法,此处尾角标+1
}
}