자바 자체 로 String 클래스 의 trim () 방법 기능 구현

자바 자체 로 String 클래스 의 trim () 방법 기능 구현
  String 클래스 의 trim () 방법의 기능 은 "문자열 의 복사 본 을 되 돌려 줍 니 다. 이 복사 본 은 전도 공백 과 끝 공백 을 무시 합 니 다." (api 의 정의 입 니 다.)현재 본 박문 은 자신 이 String 류 의 trim () 기능 을 실현 하 는 것 을 작은 알고리즘 이 라 고 할 수 있 습 니 다!
  제 생각 은 이 렇 습 니 다. 두 개의 커서 p1, p2 를 문자 배열 (문자열 의 toCharArray () 방법 으로 가 져 올 수 있 습 니 다) 의 첫 번 째, 끝, p1 이 해 야 할 일 을 설정 합 니 다. 첫 번 째 부터 끝까지 문자열 의 첫 번 째 빈 칸 이 아 닌 문자 가 있 는 위치 pos 1 을 찾 습 니 다.마찬가지 로 p2 가 해 야 할 일: 문자열 의 끝 부분 이 처음으로 빈 칸 이 아 닌 문자 가 있 는 위 치 를 찾 는 pos 2.이렇게 하면 이 문자열 의 맨 끝 에 빈 칸 '의 위치 pos1, pos2 를 제거 하고 마지막 으로 문자열 의 subString (int p1, int p2) 을 사용 하여 캡 처 하면 됩 니 다. 그 중에서 subString (p1, p2) 을 subString (p1, p2 + 1) 으로 바 꿔 야 합 니 다.
  다음은 코드.
/**
 *   String  trim()  
 * @author zhonglinsen
 * 2016-3-1   
 */
public class StringExer {
	public static void main(String[] args) {
		String str1="abcdfef dfsd";
		String str2="  abcd fd";
		String str3="adbc fd  ";
		String str4="  fdf fdfd   ";
		String str5="       ";
		
		//System.out.println(testTrim(str1));
		//System.out.println(testTrim(str2));
		//System.out.println(testTrim(str3));
		//System.out.println(testTrim(str4));
		System.out.println(testTrim(str5));
		
	}
	
	/**
	 *   String trim()
	 * @param strArg:               
	 * @return:        ,             
	 */
	public static String testTrim(String strArg){
		
		char[] cVal=strArg.toCharArray();
		int p1=0;
		int len=cVal.length;
		
		//        ,            ' '  break:       ,              ' '    
		while(p1 < len){
			if (cVal[p1] == ' ') {
				p1 += 1;
			}else{
				break;
			}
		}
		
		//     strArg                
		if (p1 == len) {
			return "";
		}
		
		//          ,            ' '  break:       ,              ' '    
		int p2=len-1;
		while(p2 >= 0){
			if (cVal[p2] == ' ') {
				p2 -= 1;
			}else{
				break;
			}
		}
		
		String subStr=strArg.substring(p1,p2+1);
		return subStr;
	}
}

  결 과 는 이 기능 을 실현 한 것 이 분명 합 니 다. 최적화 할 수 있 는 부분 이 있 을 지도 모 릅 니 다. 댓 글 을 남 겨 저 와 토론 하고 교류 하 는 것 을 환영 합 니 다!

좋은 웹페이지 즐겨찾기