代码展示:
方法1:通过StringBuilder创建的变量str来记录截断得到的字符串
思路:遍历字符串s,定义一个变量count_space来记录空格出现的次数,当空格没有出现k次时便将字符依次连接到StringBuilder类型的变量str后(StringBuilder类型的字符串在进行修改时的复杂度比String类型的低很多),直到count_space为k表示空格出现了k次便停止遍历。将str转化为String类型后返回
class Solution {
public String truncateSentence(String s, int k) {
StringBuilder str=new StringBuilder();
int count_space=0;
int length=s.length();
for(int i=0;i<length;i++){
char ch=s.charAt(i);
if(ch==' '){
count_space++;
}
if(count_space==k){
break;
}
str.append(ch);
}
return str.toString();
}
}
方法2:通过从字符串中提取字符串片段的函数substring(int a,int b)进行解题
(substring的第一个参数a是提取字符串片段的起始位置,第二个参数b是提取字符串的长度)
思路:遍历字符串s,用count_space记录空格出现的次数,用count_end记录提取字符串的长度,当空格出现的次数count_space等于k时,便退出循环,此时就得到了提取字符串的长度,通过s.substring(0,count_end)表示从下标0字符开始提取count_end个字符,便得到最终结果
class Solution {
public String truncateSentence1(String s, int k){
int count_space=0; //记录空格的数目
int count_end=0; //记录到截断处的数目
int length=s.length();
for(int i=0;i<length;i++){
if(s.charAt(i)==' '){
count_space++;
}
if(count_space==k){
break;
}
count_end++;
}
return s.substring(0,count_end);
}
}