面试题 01.03. URL化

image.png

迭代法

  1. public class Solution {
  2. public String replaceSpaces(String S, int length) {
  3. // 数组长度为什么是3倍?整个字符串都是空格的情况
  4. char[] charArr = new char[length * 3];
  5. int index = 0;
  6. for (int i = 0; i < length; i++) {
  7. // 如果是空格,在数组中依次放入 %20 三个字符
  8. if (S.charAt(i) == ' ') {
  9. charArr[index ++] = '%';
  10. charArr[index ++] = '2';
  11. charArr[index ++] = '0';
  12. } else {
  13. charArr[index ++] = S.charAt(i);
  14. }
  15. }
  16. return new String(charArr, 0, index);
  17. }
  18. }

直接调用替换字符串 api

  1. class Solution {
  2. public String replaceSpaces(String S, int length) {
  3. if (S.length() == 0) return "";
  4. return S.substring(0, length).replace(" ", "%20");
  5. }
  6. }