zoukankan      html  css  js  c++  java
  • 替换空格

    1.StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

     StringBuilder 的方法不是线程安全的(不能同步访问)。

     但 StringBuilder 有速度优势,所以多数情况下建议使用 StringBuilder 类。

    2.StringBuffer方法:.append(String s) 将指定的字符串追加到此字符序列

        reverse()  将此字符序列用其反转形式取代

        delete(int start, int end) 移除此序列的子字符串中的字符

        insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中

        replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。

    public class Solution {

        public String replaceSpace(StringBuffer str) {  //新建一个stringbuffer往进加
            StringBuffer str1 = new StringBuffer();
            for(int i = 0; i < str.length(); i++){
                if(str.charAt(i) == ' ')
                    str1.append("%20");
                else str1.append(str.charAt(i));}
            return str1.toString();
        }
    }

    另一种方法:

      • 一个空格变成了%20,也就是说每有一个空格,长度要增加2,所以首先先计算有多少个空格,这样长度就能增加多少,得到增加后的长度Length。

      • 然后new一个Length长度的字符数组,从尾到头开始复制原来的数组,如果复制过程中,如果字符不是空格,直接复制,如果字符是空格,那么需要把这个空格变成%20(这个复制过程就是把新建的数组比如现在到了 K这个位置,然后就是K,K-1,K-2这三个位置依次变成0,2,%这三个字符,因为是从后往前复制的所以是倒序),重复这个过程就行。
        如果相等,返回true;

    • (这里用字符数组进行复制,我尝试直接用string的charAt方法进行复制一直有错)
  • 相关阅读:
    hadoop的运行模式
    集群之间配置 SSH无密码登录
    NameNode故障处理方法
    HDFS的HA(高可用)
    DataNode的工作机制
    NameNode和SecondaryNameNode的工作机制
    HDFS读写数据流程
    Linux软件包管理
    DNS服务之二:Bind97服务安装配置
    ssl协议、openssl及创建私有CA
  • 原文地址:https://www.cnblogs.com/dyq19/p/10483952.html
Copyright © 2011-2022 走看看