검지 제공 매일 일솔-2017 년 11 월 11 일
2501 단어 검지 제공
문자열 의 빈 칸 을'%20'으로 바 꾸 는 함 수 를 구현 하 십시오.예 를 들 어,문자열 이 We Are Happy 일 때,교 체 된 문자열 은 We%20Are%20Happy 입 니 다.
: JDK API
public class ReplaceBackspace {
public String replaceSpace(StringBuffer str) {
String string = str.toString();
String replace = string.replace(" ", "%20");
return replace;
}
}
방법 2:
/*
1: , , !
2: , ( java replace )。
, , ,
, , , , 。
사고방식 은 다음 과 같다.1.str 에 몇 개의 빈 칸 이 있 는 지 먼저 계산한다.
2.빈 칸 을'%20'으로 바 꾼 후 str 의 길 이 를 new Length 로 계산 합 니 다.
3.str 의 길 이 를 newLength 로 설정 하면 길이 가 증가 하고 새로 증가 한 길 이 는 값 이 없습니다.
4.str 에 대해 원래 의 길이 에 따라 뒤쪽 에서 앞으로 옮 겨 다 니 고 모든 자 모 를 새로운 길이 에 따라 뒤쪽 에서 앞으로 할당 합 니 다.
뒤에 대 입 된 알파벳 이 있 는 원래 위 치 는 다른 기호 에 의 해 점용 되 고 원래 의 문자 에 영향 을 주지 않 습 니 다.
5.스페이스 바 를 만나면'0','2','%'삽입
*/
public String replaceSpace(StringBuffer str){
// str space
int spaceNum = 0; // space
for(int i=0;i < str.length();i++){
if(str.charAt(i) == ' '){ // i char ' '
spaceNum ++;
}
}
int oldLength = str.length();
int newLength = str.length()+ spaceNum*2; //%20 , space spaceNum*2
int oldIndex = oldLength-1;
int newIndex = newLength-1;
//StringBuffer newStr;
str.setLength(newLength);
// str , ' ' '%', '2','0'
for(;oldIndex>=0 && oldIndex < newLength;--oldIndex){
if(str.charAt(oldIndex) == ' '){
str.setCharAt(newIndex--,'0');
str.setCharAt(newIndex--, '2');
str.setCharAt(newIndex--, '%');
}else{
str.setCharAt(newIndex--, str.charAt(oldIndex));
}
}
return str.toString();
}
방법 3:
public static String replaceSpace(StringBuffer str){
if(str==null)
{return "%20";}
char[] ss = str.toString().toCharArray();
StringBuffer sb = new StringBuffer();
for(int i=0;i