剑指offer_数组---替换空格
来源:互联网 发布:windows功能哪些不能关 编辑:程序博客网 时间:2024/06/05 02:12
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路
1,使用stringBuffer辅助解决
2,不使用辅助类,字符替换解决
代码实现
/** * */package 字符串;/** * <p> * Title:ReplaceSpace * </p> * <p> * Description: * </p> * * @author 田茂林 * @data 2017年8月23日 下午8:14:37 */public class ReplaceSpace { // ============================================================使用辅助的StringBuffer public String replaceSpace(StringBuffer str) { char[] strs = str.toString().toCharArray(); StringBuffer s = new StringBuffer(); for (int i = 0; i < strs.length; i++) { if (strs[i] != ' ') s.append(strs[i]); else { s.append("%20"); } } return s.toString(); } // ============================================================不使用辅助方案 public String replaceSpaceSuper(StringBuffer str) { char[] strs = str.toString().toCharArray(); int count = 0; // 统计出所有空格个数 for (int i = 0; i < strs.length; i++) { if (strs[i] == ' ') { count++; } } //获取新字符串数组总长度 int len = 2 * count + strs.length; char[] newstrs = new char[len]; int i = 0; int j = 0; //遇到空格就把字符替换进去 while (i < len && j < strs.length) { if (strs[j] == ' ') { newstrs[i++] = '%'; newstrs[i++] = '2'; newstrs[i++] = '0'; j++; }else{ newstrs[i++] = strs[j++]; } } String s = new String(newstrs); return s; } public static void main(String[] args) { ReplaceSpace r = new ReplaceSpace(); StringBuffer str = new StringBuffer("We Are Happy"); System.out.println(r.replaceSpace(str)); System.out.println(r.replaceSpaceSuper(str)); }}
阅读全文
0 0
- 剑指offer_数组---替换空格
- 剑指offer_替换空格
- 剑指Offer_编程题 替换空格
- 剑指Offer_面试题04_替换空格
- 剑指offer_面试题4_替换空格(注意时间效率)
- 【2】数组空格替换
- 剑指offer_构建乘积数组
- 剑指offer_数组---二维数组中的查找
- 剑指offer_数组---数组中的逆序对
- 剑指offer_数组---构建乘积数组
- 替换空格 合并数组字符串
- 字符串数组空格的替换
- 剑指offer——替换空格&合并数组
- 剑指offer_数组中的逆序对
- 剑指offer_数组中的逆序对
- 剑指offer_数组---顺时针打印矩阵
- 剑指offer_数组---最小的K个数
- 剑指offer_数组中的重复数字
- sdut 数据结构实验之栈四:括号匹配
- 【MySql】关系型数据库介绍一
- STL常用容器用法之——vector
- 基于hibernate的BaseDAO接口
- AI开发实战5-文本输入框(TextBox)的定制2
- 剑指offer_数组---替换空格
- Three.js使用局部纹理更新
- h5笔记
- 概率论与数理统计基本概念
- KHL 004 11-计算机-本职-前台 CSS3 多列布局
- Linux下的系统编程与网络编程(一 Linux基础)
- 1854: [Scoi2010]游戏
- LeakCanary 流程及原理分析
- 个人吐槽