zoukankan      html  css  js  c++  java
  • 字符串一:替换空格()

    /**
     * 题目:替换空格()
     * 描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
     * 解决方案: 方法一:   在java中,String有一个方法replaceAll(); 传入regex(匹配的正则)和replacecomment(要替换的字符)。
     *         方法二:   利用StringBuffer,遍历输入的字符串,是空格就往stringBuffer添加“%20”,不是空格就添加原来的字符。 利用indexof()和subSequence()
     *         方法三:   思路:
     *     步骤:①遍历原来的str,有空格就在原来的基础上添加两个空格
     *      ②定义两个指针 ,oldIndex是原来字符串的,newIndex是新的字符串的指针,都从最后一个元素开始
     *      ③进行遍历新的字符串,判断原来的字符串内容是否是空格。
     * */

    public class One {
    
        public static StringBuffer replaceSpace(StringBuffer str) {
            int length = str.length();
            for(int i=0;i<length;i++) {         //①遍历原来的str,有空格就在原来的基础上添加两个空格
                if(str.charAt(i) == ' ') {
                    str.append("  ");
                }
            }
            int oldIndex = length-1;
            int newIndex = str.length() -1;        //②定义两个指针 ,oldIndex是原来字符串的,newIndex是新的字符串的指针,都从最后一个元素开始
            while( newIndex >oldIndex  && newIndex > 0) {    
                if(str.charAt(oldIndex) == ' ') {        //③进行遍历新的字符串,判断原来的字符串内容是否是空格。
                    str.setCharAt(newIndex--,'0');
                    str.setCharAt(newIndex--,'2');
                    str.setCharAt(newIndex--,'%');
                }else {
                    str.setCharAt(newIndex--, str.charAt(oldIndex));
                }
                oldIndex--;
            }
            return str;
        }
        
        public static void main(String[] args) {
            StringBuffer input = new StringBuffer();
            input.append("we are faimly");
            System.out.println(replaceSpace(input));
        }
    }
    天助自助者
  • 相关阅读:
    Python基础:28正则表达式
    Remove Duplicates from Sorted Array
    Reverse Nodes in k-Group
    Merge k Sorted Lists
    Generate Parentheses
    Container With Most Water
    Regular Expression Matching
    Median of Two Sorted Arrays
    sql 子查询
    linux安装服务器
  • 原文地址:https://www.cnblogs.com/ZeGod/p/9969374.html
Copyright © 2011-2022 走看看