Java模拟字符串trim功能一致的方法,去除字符串两端的空白

方法一:
(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
	}

}

你可能感兴趣的:(字符串)