面试题 01.03. URL化

URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)

示例1:

 输入:"Mr John Smith    ", 13
 输出:"Mr%20John%20Smith"

示例2:

 输入:"               ", 5
 输出:"%20%20%20%20%20"

提示:

  1. 字符串长度在[0, 500000]范围内
  2. https://leetcode-cn.com/problems/string-to-url-lcci/
  3. https://www.cnblogs.com/WLCYSYS/p/13372866.html
  4. 这里的13是有效的长度
class Solution {
    public String replaceSpaces(String S, int length) {
        return S.substring(0, length).replaceAll(" ", "%20");

    }
}

 second:

class Solution {
    public String replaceSpaces(String S, int length) {
       StringBuilder sb = new StringBuilder();

       for(int i = 0;i < length; i++){
                if(S.charAt(i) != ' '){
                sb.append(S.charAt(i));
                }else{
           sb.append("%20");
                }
       }
       return sb.toString();


    }

    }

 

substring

public String substring(int beginIndex,
                        int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex

示例:

 "hamburger".substring(4, 8) returns "urge"
 "smiles".substring(1, 5) returns "mile"

 

参数:beginIndex - 起始索引(包括)。endIndex - 结束索引(不包括)。返回:指定的子字符串。抛出:IndexOutOfBoundsException - 如果 beginIndex 为负,或 endIndex 大于此 String 对象的长度,或 beginIndex 大于 endIndex

replace

public String replace(char oldChar,
                      char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

如果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用。否则,创建一个新的 String 对象,它所表示的字符序列除了所有的 oldChar 都被替换为 newChar 之外,与此 String 对象表示的字符序列相同。

示例:

"mesquite in your cellar".replace('e', 'o')
         returns "mosquito in your collar"
 "the war of baronets".replace('r', 'y')
         returns "the way of bayonets"
 "sparring with a purple porpoise".replace('p', 't')
         returns "starring with a turtle tortoise"
 "JonL".replace('q', 'x') returns "JonL" (no change)

 

参数:oldChar - 原字符。newChar - 新字符。返回:一个从此字符串派生的字符串,它将此字符串中的所有 oldChar 替代为 newChar

类 StringBuilder

java.lang.Object

java.lang.StringBuilder
所有已实现的接口:Serializable, Appendable, CharSequence
public final class StringBuilderextends Objectimplements Serializable, CharSequence

一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

StringBuilder 上的主要操作是 appendinsert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串生成器中。append 方法始终将这些字符添加到生成器的末端;而 insert 方法则在指定的点添加字符。

例如,如果 z 引用一个当前内容为 "start" 的字符串的生成器对象,则该方法调用 z.append("le") 将使字符串生成器包含 "startle",而 z.insert(4, "le") 将更改字符串生成器,使之包含 "starlet"。

通常,如果 sb 引用 StringBuilder 的实例,则 sb.append(x)sb.insert(sb.length(), x) 具有相同的效果。每个字符串生成器都有一定的容量。只要字符串生成器所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区。如果内部缓冲区溢出,则此容量自动增大。

StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用 StringBuffer。 

 

原文链接:www.cnblogs.com

上一篇:记一次特殊的登录流程
下一篇:SparkStreaming

相关推荐

  • 面试题:驼峰体与匈牙利语法的相互转换

    1 /* 2 驼峰体转匈牙利 3 */ 4 function TfToXyl(params) { 5 ...

    1 个月前
  • 面试题:给你个id,去拿到name,多叉树遍历

    前天面试遇到一个多叉树面试的题目,在这里分享记录一下。 题目:一个树形的数据(如下数据),面试官给你一个id,然后拿到对应的name? 数据结构大概是这个样子 var cityData = [ ...

    3 年前
  • 面试题:HTML+CSS

    持续更新中... 面试传送门: 面试题:HTTP 面试重点:webpack 面试题:JS 面试题:Vue 面试问题:接招人事(非技术性问题) 关于HTML+CSS不是重点,所以只需简单的了解下...

    1 年前
  • 面试题,实现一个Promise.first()

    // (1.)最短时间内找出(2.)响应速度最快且(3.)成功的接口。 // 实现 findFatest 函数。 const urls = [ 'https://www.toutiao.co...

    2 年前
  • 面试题, 实现一个Event类

    https://www.jianshu.com/p/594f018b68e7题目:使用 ECMAScript(JS)代码实现一个事件类Event ,包含下面功能:绑定事件、解绑事件和派发事件。

    2 年前
  • 面试题精选:神奇的斐波那契数列

    斐波那契数列,其最开始的几项是0、1、1、2、3、5、8、13、21、34…… ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义。f0 = 0f1 = 1f(n) = f(n-...

    4 天前
  • 面试题整理

    1、说一说Servlet的生命周期? servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口init,servi...

    1 个月前
  • 面试题必备-web页面基础

    html标签是由&lt;&gt;包围的关键词 html标签是成对出现的 有部分标签是没有结束标签的,叫单标签, 页面中所有的内容,都是要放在HTML标签中的 HTML标签分三部分: 标签名称 标签内容...

    1 年前
  • 面试题6:从尾到头打印链表

    输入一个链表的头结点,从尾到头反过来打印出每个结点的值。 C++版本 #include&lt;iostream&gt; #include &lt;stack&gt; struct List...

    6 个月前
  • 面试题5:替换空格

    请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。 C++版本 //=================...

    24 天前