java字符串替换空格_java–编写⼀个⽅法来替换字符串中的所
有空格
我有⼀个关于编程问题的问题,从第5版的Gayl Laakmann McDowell的“Cracking The Code Interview”开始.
问题是:写⼀个⽅法⽤”替换字符串中的所有空格.假设字符串在字符串末尾有⾜够的空间来保存其他字符,并且给出⼀个字符串的真正长度.我使⽤了图书代码,使⽤⼀个字符数组来实现Java中的解决⽅案(给出了Java Strings是不可变的):java replace方法
public class Test {
public void replaceSpaces(char[] str, int length) {
int spaceCount = 0, newLength = 0, i = 0;
for(i = 0; i < length; i++) {
if (str[i] == ' ')
spaceCount++;
}
newLength = length + (spaceCount * 2);
str[newLength] = '\0';
for(i = length - 1; i >= 0; i--) {
if (str[i] == ' ') {
str[newLength - 1] = '0';
str[newLength - 2] = '2';
str[newLength - 3] = '%';
newLength = newLength - 3;
}
else {
str[newLength - 1] = str[i];
newLength = newLength - 1;
}
}
System.out.println(str);
}
public static void main(String[] args) {
Test tst = new Test();
char[] ch = {'t', 'h', 'e', ' ', 'd', 'o', 'g', ' ', ' ', ' ', ' ', ' ', ' '};
int length = 6;
}
}
我从replaceSpaces()调⽤得到的输出是:正在切割原始数组的最后⼀个字符.我⼀直在抓我的头,任何⼈都可以向我解释为什么算法是这样做的?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。