
代码展示:
方法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);
    }
}


















