1. 程式人生 > >劍指offer----替換空格

劍指offer----替換空格

pan 空格替換 end 實現 新建 替換 tle replace index

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

第一種方法:

新建一個StringBuffer實例,然後用StringBuffer的append方法往裏面添加字符串即可。

public class Solution {
    public String replaceSpace(StringBuffer str) {
        StringBuffer sb=new StringBuffer();
        for(int i=0;i<str.length();i++){
            
if(str.charAt(i)==‘ ‘){ sb.append(‘%‘); sb.append(‘2‘); sb.append(‘0‘); } else sb.append(str.charAt(i)); } return sb.toString(); } }

第二種方法:

這種方法就是改變原有字符串的長度,然後從後往前移替換字符串,這樣的話就可以每次只移動一次字符串。

public class Solution {
    
public String replaceSpace(StringBuffer str) { int spacenum=0; for(int i=0;i<str.length();i++){ if(str.charAt(i)==‘ ‘)spacenum++; } int oldindex=str.length()-1; str.setLength(str.length()+spacenum*2); int newindex=str.length()-1; while
(oldindex>=0){ if(str.charAt(oldindex)==‘ ‘){ str.setCharAt(newindex--, ‘0‘); str.setCharAt(newindex--, ‘2‘); str.setCharAt(newindex--, ‘%‘); } else{ str.setCharAt(newindex--, str.charAt(oldindex)); } oldindex--; } return str.toString(); } }

劍指offer----替換空格