這道題解法很多,列舉一下我知道的:
解法一:
public string replacespace
(stringbuffer str)
return str.
tostring()
.replace
(" "
,"20%");
}
解法二:
public string replacespace
(stringbuffer str)
stringbuffer sb =
newstringbuffer()
;for
(int i =
0; i < str.
length()
; i++
)else
}return sb.
tostring()
;}
需要注意的是str.charat(i)
是乙個char
,而不是string
。
解法三:
public string replacespace
(stringbuffer str)
int black =0;
for(
int i =
0; i < str.
length()
; i++)}
int newlen = str.
length()
+ black *2;
char
newstr =
newchar
[newlen]
;// 這種涉及到陣列的邊界值的時候,得非常小心
int j = newlen -1;
for(
int i = str.
length()
-1; i >=
0; i--
)else
}return
newstring
(newstr)
;}
這裡在**裡標註了兩行int j = newlen - 1;
和newstr[j--] = '0';
。運算元組的時候,一定要非常小心,尤其是邊界值,特別容易出錯。
解法三參照了劍指offer第五題的思路,int newlen = str.length() + black * 2;
是指替換後的字元陣列位數比之前的要多出的2倍空格位。因為,"%20"
比" "
多兩位。
我最開始犯的錯誤是,把"%20"
,寫成"20%"
。
牛客網 替換空格(字串)
題目 知識點 1 string是一旦產生後不可修改。1 長度 int length 2 根據位置獲取該位置上的某個字元 char charat int index 3 根據字元獲取該字元在字串的位置 int indexof string str 返回的是str在字串中第一次出現的位置。4 字串中是否...
牛客網程式設計題 字串 空格替換
請編寫乙個方法,將字串中的空格全部替換為 20 假定該字串有足夠的空間存放新增的字元,並且知道字串的真實長度 小於等於1000 同時保證字串由大小寫的英文本母組成。給定乙個stringinistring為原始的串,以及串的長度 intlen,返回替換後的string。測試樣例 mr john smi...
牛客 2 替換空格
題目描述 注意 題目中的 替換成長度為3的字串,所以陣列長度增加了。python解決方法 先把字串轉化成列表,進行替換,然後把列表轉化回字串 lis list s leng len s for i in range 0,leng if i lis i 20 return join lis class...