• 替换空格


     1 package algorithms;
     2 
     3 /**
     4  *     请实现一个函数,将一个字符串中的每个空格替换成“%20”。 
     5  *     例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
     6  * 
     7  */
     8 //先统计出字符串中空格的数量  确定出新串的长度(原串长度+空格数量*2)
     9 //举一反三:合并两个数组时,如果从前往后复制每个数字则需要重复移动数字多次,
    10 //那么我们可以考虑从后往前复制,这样就能减少移动的次数,从而提高效率
    11 public class ReplaceSpace {
    12     public String replaceSpace(StringBuffer str) {
    13         if (str.length() == 0)
    14             return "";
    15         char[] oldStr = str.toString().toCharArray();
    16         // 统计出字符串中空格的数量
    17         int count = 0;
    18         for (int i = 0, len = oldStr.length; i < len; i++) {
    19             if (oldStr[i] == ' ')
    20                 count++;
    21         }
    22         char[] newStr = new char[oldStr.length + count * 2];
    23         int j = 0;
    24         for (int i = 0, len = oldStr.length; i < len; i++) {
    25             if (oldStr[i] == ' ') {
    26                 newStr[j] = '%';
    27                 newStr[++j] = '2';
    28                 newStr[++j] = '0';
    29             } else {
    30                 newStr[j] = oldStr[i];
    31             }
    32             j++;
    33         }
    34         String s = new String(newStr);
    35         return s;
    36     }
    37 }
    38 
    39 
    40 /*    看题目要求是否一定要在原字符串上进行操作
    41  * 
    42  * public String replaceSpace(StringBuffer str) {
    43     if(str==null){
    44         return null;
    45     }
    46    StringBuilder newStr = new StringBuilder();
    47     for(int i=0;i<str.length();i++){
    48         if(str.charAt(i)==' '){
    49             newStr.append('%');
    50             newStr.append('2');
    51             newStr.append('0');
    52         }else{
    53             newStr.append(str.charAt(i));
    54         }
    55     }
    56     return newStr.toString();
    57 }*/
  • 相关阅读:
    SQL Server的日期格式转换
    Typora激活
    第六章28
    第六章27
    第六章30
    第六章32
    垃圾回收机制
    成员运算与身份运算
    编程语言的发展史
    字符编码
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10630426.html
Copyright © 2020-2023  润新知