package com.my.offer;
/**
* 替换空格
* @author asus
*
*/
public class Solution02 {
public String replaceSpace(StringBuffer str) {
//拷贝str1,不改变参数内容
String str1 = str.toString();
if(str1.equals(" ")) {
return str1;
}
//将字符串转化为字符数组
char[] strArray = str1.toCharArray();
int lengthSpace = 0;
//遍历字符数组,计算空格的总个数
for(int i = 0; i < str.length(); i++) {
if(strArray[i] == ' ') {
lengthSpace++;
}
}
//计算新的字符数组的长度
int newStrLength = strArray.length + lengthSpace * 2;
//创建新的字符数组
char[] newStr = new char[newStrLength];
//定义两个指针,一个指向原数组的最后一个元素,一个指向新数组的
//最后一个元素
int i = strArray.length - 1;
int j = newStr.length - 1;
//遍历数组从尾到头替换空格
while(i >= 0) {
if(strArray[i] != ' ') {
newStr[j--] = strArray[i--];
} else {
newStr[j--] = '0';
newStr[j--] = '2';
newStr[j--] = '%';
i--;
}
}
//将字符数组转化为字符串返回
return new String(newStr);
}
}
02-面试题5--替换空格
最新推荐文章于 2020-04-03 22:23:42 发布