题目描述
URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
示例 1:
输入:"Mr John Smith ", 13
输出:"Mr%20John%20Smith"
示例 2:
输入:" ", 5
输出:"%20%20%20%20%20"
提示:
字符串长度在 [0, 500000] 范围内。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/string-to-url-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
开始解题(JavaScript)
逐步验算
吸收学习
吸收学习一下JavaScript示例代码中的slice函数和encodeURL函数
slice函数
JavaScript中的slice()
函数用于截取数组或字符串的一部分,并返回一个新的数组或字符串。slice()
函数接受两个参数:起始索引和结束索引(可选)。起始索引表示截取的起始位置(包含该位置的元素),结束索引表示截取的结束位置(不包含该位置的元素)。
语法:
- 对于数组:
array.slice(start, end)
- 对于字符串:
string.slice(start, end)
示例:
- 对于数组:
var array = [1, 2, 3, 4, 5]; var newArray = array.slice(1, 4); console.log(newArray); // 输出:[2, 3, 4] - 对于字符串:
var string = "Hello, world!"; var newString = string.slice(7, 12); console.log(newString); // 输出:"world"
注意事项:
- 如果省略结束索引,则会截取从起始索引到数组或字符串末尾的所有元素。
- 如果起始索引或结束索引为负数,则表示从末尾开始计算的位置,例如
-1
表示最后一个元素。 slice()
函数不会改变原始数组或字符串,而是返回一个新的数组或字符串。
需要注意的是,数组和字符串的截取操作有一些细微的差异。在字符串中,slice()
函数会返回一个新的字符串,而在数组中,slice()
函数会返回一个新的数组。
encodeURIComponent()函数
在JavaScript中,可以使用内置的encodeURIComponent()
函数来对URL进行编码。该函数用于将URL中的特殊字符转换为它们的编码表示,以便在URL中安全使用。编码后的URL可以通过decodeURIComponent()
函数进行解码。
语法:
encodeURIComponent(uri)
示例:
var url = "https://www.example.com/?name=John Smith";
var encodedURL = encodeURIComponent(url);
console.log(encodedURL); // 输出:"https%3A%2F%2Fwww.example.com%2F%3Fname%3DJohn%20Smith"
在上述示例中,encodeURIComponent()
函数将URL中的特殊字符进行了编码,包括冒号、斜杠和问号等。编码后的URL可以作为参数传递给其他函数或用于构建完整的URL。
需要注意的是,encodeURIComponent()
函数对所有非字母数字字符进行编码,包括一些保留字符(如冒号、斜杠、问号、等号)和特殊字符(如空格、引号、尖括号等)。这意味着编码后的URL可能会比原始URL长。而对于整个URL的编码,可以使用encodeURI()
函数。