题目
解题思路
- 这道题的思路主要是:切片分段 到 每段后添加空格,最后进行 拼接的过程。
java语法知识
- StringBuffer的实例化对象的创建。
- append()方法、substring()方法、toString()方法的使用。
- substring(beginIndex,endIndex)方法是:返回字符串的子字符串(起始索引位置到终止索引位置)
关键代码解释
sb.append(s.substring(start,spaces[i])).append(" ");
这行代码主要实现了将字符串进行分段切片,并在每段末尾添加空格的作用
buffer.append(s.substring(start));
这行代码主要实现将切片处理后的字符串进行拼接的作用
java代码与运行结果
class Solution{
public String addSpaces(String s,int[] spaces){
StringBuffer sb = new StringBuffer();
int start=0;
for(int i=0;i<spaces.length;i++){
sb.append(s.substring(start,spaces[i])).append(" ");
//第一次循环,start=0;spaces[0]=数组中第一个数,调用substring(),f返回第一段子字符串传给append()函数中,同时在这段子字符串后再添加空格即可完成第一段的分割
start=spaces[i];
//将切片初始指针位置调整至第二段的起始位置即第一段字符的结尾,以此再重复第二次循环,直至结束。
}
sb.append(s.substring(start));
//将截取后的字符再调用append()方法拼接成一个完整字符
return sb.toString();
//调用toString()方法输出字符,即可得到字符串中添加字符的结果
}
}
运行结果截图