자바 자체 로 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;
}
}
결 과 는 이 기능 을 실현 한 것 이 분명 합 니 다. 최적화 할 수 있 는 부분 이 있 을 지도 모 릅 니 다. 댓 글 을 남 겨 저 와 토론 하고 교류 하 는 것 을 환영 합 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.