跟learnjiawa一起每天一道算法编程题,既可以增强对常用API的熟悉能力,也能增强自己的编程能力和解决问题的能力,算法和数据结构,是基础中的基础,更是笔试的重中之重。
- 不积硅步,无以至千里;
- 不积小流,无以成江海。
题目描述
Java版牛客网剑指offer编程题第2题–替换空格:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题方法1
/**
* 调用自带函数解决问题
* */
public static String replaceSpace1(StringBuffer str) {
return str.toString().replace(" ", "%20");
}
解题方法2
/**
* 新建一个StringBuilder对象,遍历str每个字符,遇到空格就替换
* */
public static String replaceSpace2(StringBuffer str) {
StringBuilder sb = new StringBuilder();
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(c == ' '){
sb.append("%20");
}else{
sb.append(c);
}
}
return sb.toString();
}
代码测试
package com.learnjiawa.jzoffer;
/**
* @author zouhuayu
* 2019-12-01-10:02
*/
public class Solution2 {
public static void main(String[] args) {
StringBuffer str = new StringBuffer("We Are Happy");
String strResult = replaceSpace2(str);
System.out.println(strResult);
}
/**
* 调用自带函数解决问题
* */
public static String replaceSpace1(StringBuffer str) {
return str.toString().replace(" ", "%20");
}
/**
* 新建一个StringBuilder对象,遍历str每个字符,遇到空格就替换
* */
public static String replaceSpace2(StringBuffer str) {
StringBuilder sb = new StringBuilder();
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(c == ' '){
sb.append("%20");
}else{
sb.append(c);
}
}
return sb.toString();
}
}
总结
题目主要考察字符串的相关知识点,熟悉相关API就可以迅速解题。
参考文献
[1]程杰. 大话数据结构. 北京:清华大学出版社, 2011.
更多
对我的文章感兴趣,持续更新中…
关注微信公众号: