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

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

    方法一
    传过来的参数是StringBuffer,我们可以使用StringBuffer类的replace和indexOf方法,但是StringBuffer无法判别字符串中是否存在某个字符子串,所以可以转化为String类型,并使用contains进行判别

    	public String replaceSpace(StringBuffer str) {
    		String result = str.toString();
    		if(result.contains(" ")){
    			while(str.indexOf(" ") != str.lastIndexOf(" ")){
    				int index = str.indexOf(" ");
    				str.replace(index,index+1,"%20");
    			}
    			int index = str.indexOf(" ");
    			str.replace(index,index+1,"%20");
    			result = str.toString();
    			return result;
    
    		}else{
    			return result;
    		}
    	}
    

    方法二
    优化while循环的判断,这里借助indexOf()方法在未找到匹配字符串时返回-1

    	public String replaceSpace_2(StringBuffer str) {
    		int index = str.indexOf(" ");
    		while(index != -1) {
    			str.replace(index, index + 1, "%20");
    			index = str.indexOf(" ");
    		}
    		String result = str.toString();
    		return result;
    	}
    

    方法三
    不使用replace(),而采用字符替换,这里声明一个新的数组来存放替换后字符串中各字符。

    	public String replaceSpace_3(StringBuffer str) {
    		int len = str.length();
    		int space_len = 0;
    		for (int i = 0; i < len; i++) {
    			if(str.charAt(i) == ' ') {
    				space_len++;
    			}
    		}
    		int arr_len = len + 2 * space_len;  //(len - space_len) + 3 * space_len
    		char[] str_arr = new char[arr_len];
    		int index = arr_len - 1;
    		while(len > 0) {
    			if(str.charAt(len - 1) != ' ') {
    				str_arr[index--] = str.charAt(len - 1);
    			}
    			else {
    				str_arr[index--] = '0';
    				str_arr[index--] = '2';
    				str_arr[index--] = '%';
    			}
    			len--;
    		}
    		
    		return String.valueOf(str_arr);
    	}
    
  • 相关阅读:
    Redis --- 客户端 --- Another Redis Desktop Manager
    Docker --- 记录安装与使用过程中遇到的问题
    Docker安装教程
    Python --- pip --- No module named 'pip'异常问题
    天气接口测试用例生成报告
    jsonpath使用
    python小知识,字典
    python小知识,列表推导式
    python小知识,sort和serted的区别
    如何查看app启动的activity
  • 原文地址:https://www.cnblogs.com/lishanlei/p/10707766.html
Copyright © 2011-2022 走看看