劍指offer--替換空格 java實現

Q:請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。

兩種實現方式:

    /**
     * 在原StringBuffer上改動
     * @param str
     * @return
     */
    public String replaceSpace(StringBuffer str) {
    	int n=str.length(),count=0;
        for(int i=0;i<str.length();i++){if(str.charAt(i)==' '){count++;}}
        str.setLength(n+count*2);
        int i=str.length()-count*2-1,j=str.length()-1;
        while(i>=0){
        	if(str.charAt(i)==' '){str.setCharAt(j, '0');str.setCharAt(j-1, '2');str.setCharAt(j-2, '%');j=j-3;i--;}
        	else{str.setCharAt(j, str.charAt(i));j--;i--;}
        }
        return str.toString();
    }
/**
 * 申請一個新StringBuffer
 * @param args
 */
    public static void main(String[] args) {
    	StringBuffer str = new StringBuffer("hello world");
    	int n=str.length(),count=0;
        for(int i=0;i<str.length();i++){if(str.charAt(i)==' '){count++;}}
        StringBuffer strnew = new StringBuffer();
        strnew.setLength(n+count*2);
        int i=str.length()-1,j=strnew.length()-1;
        while(i>=0){
        	if(str.charAt(i)==' '){strnew.setCharAt(j, '0');strnew.setCharAt(j-1, '2');strnew.setCharAt(j-2, '%');j=j-3;i--;}
        	else{strnew.setCharAt(j, str.charAt(i));j--;i--;}
        }
        System.out.println(strnew.toString());
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章