zoukankan      html  css  js  c++  java
  • 替换字符串中空格为”%20“

    TIPS:‘%20’有三个字符构成,遍历直接替换的话需要增加字符串的空间,然后进行移位和替换,因此,先计算空格数目,直接算好替换后需要空间,然后从尾部开始遍历。

    算法流程:

    遍历字符串,记录下有多少个空格;

    从字符串尾部重新解析:

      (1) 如果当前字符为空格,在写入字符串'%20'

      (2) 非空格则直接记录。

    /*
    * length为字符数组的容量
     */
    private static void replaceBlank(char[] string, int length) {
    	if (string==null||length==0) {
    		return;
    	}
    	//originalLength为字符的总长度
    	int originalLength=0;
    	int blankLength=0,index=0;//空格的个数
    	while (string[index]!='') {
    		originalLength++;
    		if (string[index]==' ') {
    			blankLength++;
    		}
    		++index;
    	}
    	//替换后的长度
    	int newLength=originalLength+blankLength*2;
    	if (newLength>length) {
    		return;
    	}
    	//从后往前,依次复制原始串中字符,并将空格替换为"20%"
    	int indexOfNew=newLength;
    	int indexOfOriginal=originalLength;
    	while (indexOfOriginal>=0&&indexOfNew>indexOfOriginal) {
    		if (string[indexOfOriginal]==' ') {
    			string[indexOfOriginal--]='0';
    			string[indexOfOriginal--]='2';
    			string[indexOfOriginal--]='%';
    		}
    		else {
    			string[indexOfNew--]=string[indexOfOriginal];
    		}
    		indexOfOriginal--;
    	}
    }
    

      

  • 相关阅读:
    Java中的CopyOnWrite
    Collection和Collections的区别
    java中值类型与引用类型的关系
    Xml的用途
    js弹框的3种方法
    文件夹重定向失败解决方案
    网络管理人员经常遇到的十个问题(转载)
    QTP之下拉列表单选框…
    Windows脚本宿主对象模型
    QTP报错“缺少对象WScript”
  • 原文地址:https://www.cnblogs.com/cugb-2013/p/3661345.html
Copyright © 2011-2022 走看看