力扣Lc28---- 557. 反转字符串中的单词 III(java版)-2024年4月06日

1.题目描述

在这里插入图片描述

2.知识点

1)用StringBuilder的方法 实现可变字符串结果

最后返回的时候用.toString的方法

2)在Java中使用StringBuilder的toString()方法时,它会返回StringBuilder对象当前包含的所有字符序列的字符串表示。

在我们的例子中,sb是一个StringBuilder对象,我们使用append()方法向它添加反转后的字符。最后,当我们调用sb.toString()时,它会返回StringBuilder对象中的字符序列作为一个字符串

3)public class HelloWorld {
public static void main(String []args) {
StringBuilder sb=new StringBuilder();
String s=“Hello world!”;
String[] words=s.split(" “);
for(int i=0;i<words.length;i++) //对字符串数组进行遍历????
{
System.out.println(words[i]+” ");//遍历字符串数组的每个元素 words[i]
}
}
}

对于数组的索引,通常我们使用数组的长度 array.length,而不是 array.length() - 1。因为数组的索引是从 0 开始的,所以最后一个元素的索引实际上是 array.length - 1。

在你的代码中,words.length() 返回的是数组的长度,而数组的索引从 0 开始。因此,words.length() - 1 会是最后一个单词的索引,但是在循环中你应该使用 words.length 来遍历整个数组。
4)加强for循环

for(String word : words) {
    System.out.println(word + " ");
}

5)
在 Java 中,String 类型没有 reverse() 方法。你需要先将每个单词转换为 StringBuilder 对象,然后使用 reverse() 方法。

3.代码实现

class Solution {
    public String reverseWords(String s) {

        StringBuilder sb=new StringBuilder();// // 创建一个新的 StringBuilder 对象,并将当前单词初始化为其内容
       
        String[] words=s.split(" ");
        for(int i=0;i<words.length;i++)
      {
         StringBuilder Rw=new StringBuilder(words[i]);
         //创建一个新的 StringBuilder 对象 reversedWord,并将当前单词 words[i] 初始化为其内容。
         Rw.reverse();//使用 reverse() 方法反转当前单词 reversedWord


         sb.append(Rw.toString()).append(" ");//将反转后的单词追加到 StringBuilder 对象 sb 的末尾,并追加一个空格。
       }
    return sb.toString().trim();//将字符序列转换成字符串,去掉结果字符串末尾的多余空格,并返回结果。

    }
}

4.具体例子
(1)String[] words = s.split(" ");: 将输入字符串 s 按空格分割成单词数组 words。

words = {“Hello”, “world!”}
StringBuilder sb = new StringBuilder();: 创建一个新的 StringBuilder 对象 sb。

(2)sb = “”
for (int i = 0; i < words.length; i++) { … }: 使用传统的 for 循环遍历单词数组 words。

第一次循环:

i = 0
words[0] = “Hello”
reversedWord = “olleH”
sb = "olleH "
第二次循环:

i = 1
words[1] = “world!”
reversedWord = “!dlrow”
sb = "olleH !dlrow "
(3)return sb.toString().trim();: 去掉结果字符串末尾的多余空格,并返回结果。

返回值为 “olleH !dlrow”

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值