替换空格
来源:互联网 发布:macbook 下载软件网站 编辑:程序博客网 时间:2024/06/05 16:31
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
源码实现
package com.nuike;public class Solution { public static void main(String[] args) { Solution solution = new Solution(); String string = "We are happy!"; StringBuffer sb = new StringBuffer(string); System.out.println("将空格替换为'%20'之后的字符串为:" + solution.replaceSpace(sb)); } /** * 自己的解法,一点也不推荐 * * @param str * @return */// public String replaceSpace(StringBuffer str) {// // for(int i = 0; i < str.length(); i++) {// char c = str.charAt(i);// if(c == ' ') str.replace(i, i + 1, "%20");// }// // return str.toString();// // } /** * 推荐解法 2:牛人都用正则 * * @param str * @return */ public String replaceSpace(StringBuffer str) { // \s——正则表达式元字符 // \——在正则表达式中像一般字符一样使用元字符(\s) return str.toString().replaceAll("\\s","%20"); } /** * 推荐解法 1:官方解法 * * 剑指offer书籍上的思路,Java版本试实现 * 将原字符串转换为数组,在数组中完成空格替换 * * @param str * @return */// public String replaceSpace(StringBuffer str) {// ////1.计算空格的多少// int countOfGap = 0;// for(int i = 0; i < str.length(); i++){// if(str.charAt(i) == ' ') countOfGap++;// } // // //新串的长度// int newlength = countOfGap * 2 + str.length();// ////2.定义两个指针,一个指向新串的子串前,一个指向新串的字串后,从右向左,生成新串// int end = newlength - 1;// // //规定一个长度为newlength的字符串数组// char[] result = new char[newlength];// // //从后往前遍历原字符串,将空格替换为%20// for(int i = str.length() - 1; i >= 0; i--){// //等于' ',我们分别加上字符%20// if(str.charAt(i) == ' ') {// result[end--] = '0';// result[end--] = '2';// result[end--] = '%';// } else {// //不等于' ',就将原来字符串中字符copy到新的字符串数组中// result[end--] = str.charAt(i);// }// }// // //将字符串数组转换为字符串返回// return String.valueOf(result);// }}
0 0
- 空格替换
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- hibernate学习笔记第二天(2)
- 决策树
- conda 安装 opencv
- Jenkins + xcode +Fir.im 自动构建项目 、打包ipa并上传
- MessageBox、:: MessageBox、AfxMessageBox三者区别
- 替换空格
- PAT (Basic Level) Practise (中文)1069. 微博转发抽奖(20) 解题报告
- 自定义的三项开关控件
- Hadoop环境----自动分区和挂载磁盘
- 添加nginx为系统服务(service nginx start/stop/restart)
- Android中Selector的使用
- iOS开发之样式多样好用的滑动视图Demo
- 我的Android读书笔记——(1)
- android PinYinIME横屏模式禁止全屏输入 & 调整横屏模式下键盘高度