package cn.dzp.flyroc.offer;
public class ReplaceSpaceDemo {
/*题目描述:将一个字符串中的字符替换成_*/
/*例如:当字符串为 WE ARE HAPPY,则经过替换后的字符串为:WE_ARE_HAPPY*/
/*思路:从后往前复制,数组长度会增加,或使用StringBuilder、StringBuffer类
* 构建一个StringBuffer类存放原字符串。构建一个StringBuilder类存放替换后的字符串,从第一个字符开始遍历,
* 判断类型是否是空格,若是空格就替换成_,若不是就将这个字符复制到StringBuilder中*/
//代码实现
public static String replaceSpace(StringBuffer stringBuffer){
if (stringBuffer == null){ //判断字符串是否为空
return null;
}
StringBuilder stringBuilder = new StringBuilder(); //构建一个新的存放替换后的字符串
for (int i = 0; i < stringBuffer.length(); i++){ //遍历字符串
if (stringBuffer.charAt(i) == ' '){ //获取StringBuffer中的第i个字符是否与空格相同
stringBuilder.append('_'); //替换成_
}else {
stringBuilder.append(stringBuffer.charAt(i)); //否则将这个字符添加到stringBuilder中
}
}
System.out.println("这是替换之后的字符串:"+String.valueOf(stringBuilder));
return String.valueOf(stringBuilder);
}
public static void main(String[] args){
StringBuffer stringBuffer = new StringBuffer("WE ARE HAPPY"); //构建字符串
System.out.println("这是替换之前的字符串:"+stringBuffer);
replaceSpace(stringBuffer);
}
}