zoukankan      html  css  js  c++  java
  • 剑指offer——替换空格

    请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

    public class Solution {
        public String replaceSpace(StringBuffer str) {
        	
        }
    }
    

      

    StringBuffer StringBuilder和String的区别

    速度上:String<StringBuffer<StringBuilder

    线程安全:StringBuffer是线程安全的,StringBuilder是非线程安全的

    String长度是不可变的,每次改变都要进行字符串的复制,StringBuffer和StringBuilder可以直接在字符串上进行修改

    自己的方法:

    直接使用的是StringBuffer中现有的方法:

        replace(int start, int end, String str):把从start到end的部分替换为str,包含start不包含end,返回的依然是StringBuffer。

    获取StringBuffer中某处的字符不能使用数组形式str[i],需要使用  charAt(int index):通过脚标获取字符。

    而StringBuffer变为String,可通过toString()方法变成字符串。

    字符串String类、字符串缓冲区StringBuffer和StringBuilder、及常用方法

     
    public class Solution {
        public String replaceSpace(StringBuffer str) {
        	String res = "";
            if(str == null){
                return res;
            }
            for(int i = 0; i < str.length(); ++i){
                if(str.charAt(i) == ' '){
                    
                    str.replace(i, i + 1, "%20");
                }
            }
            res = str.toString();
            return res;
        }
    }
    

      

    别人的方法:

    不使用StringBuffer的replace方法,而是重新new一个StringBuffer,通过判断空格,采用append的方法来添加,append(数据):将指定数据(任意类型)作为参数添加到已有数据的结尾处

    public class Solution {
        public String replaceSpace(StringBuffer str) {
            String sti = str.toString();
            char[] strChar = sti.toCharArray();
            StringBuffer stb = new StringBuffer();
            for(int i=0;i<strChar.length;i++){
                if(strChar[i]==' '){
                    stb.append("%20");
                }else{
                    stb.append(strChar[i]);
                }
            }
            return stb.toString();
        }
    }
    

      

  • 相关阅读:
    稀疏矩阵解题数学库 -- UMFPACK
    国外程序猿整理的C++大全
    SQL实用语句大全
    this 三句话
    ELK 7.4.2 单机安装配置
    简单搭建DNS服务器——bind
    关于博客皮肤
    Golang 实现 array_push
    Golang 发送POST请求,加header头,带参数
    Golang 签名
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/8520782.html
Copyright © 2011-2022 走看看