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

2024-04-07 02:12

本文主要是介绍力扣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() 方法反转当前单词 reversedWordsb.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”

这篇关于力扣Lc28---- 557. 反转字符串中的单词 III(java版)-2024年4月06日的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881398

相关文章

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Java利用@SneakyThrows注解提升异常处理效率详解

《Java利用@SneakyThrows注解提升异常处理效率详解》这篇文章将深度剖析@SneakyThrows的原理,用法,适用场景以及隐藏的陷阱,看看它如何让Java异常处理效率飙升50%,感兴趣的... 目录前言一、检查型异常的“诅咒”:为什么Java开发者讨厌它1.1 检查型异常的痛点1.2 为什么说

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

基于Java和FFmpeg实现视频压缩和剪辑功能

《基于Java和FFmpeg实现视频压缩和剪辑功能》在视频处理开发中,压缩和剪辑是常见的需求,本文将介绍如何使用Java结合FFmpeg实现视频压缩和剪辑功能,同时去除数据库操作,仅专注于视频处理,需... 目录引言1. 环境准备1.1 项目依赖1.2 安装 FFmpeg2. 视频压缩功能实现2.1 主要功

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Spring-DI依赖注入全过程

《Spring-DI依赖注入全过程》SpringDI是核心特性,通过容器管理依赖注入,降低耦合度,实现方式包括组件扫描、构造器/设值/字段注入、自动装配及作用域配置,支持灵活的依赖管理与生命周期控制,... 目录1. 什么是Spring DI?2.Spring如何做的DI3.总结1. 什么是Spring D

spring AMQP代码生成rabbitmq的exchange and queue教程

《springAMQP代码生成rabbitmq的exchangeandqueue教程》使用SpringAMQP代码直接创建RabbitMQexchange和queue,并确保绑定关系自动成立,简... 目录spring AMQP代码生成rabbitmq的exchange and 编程queue执行结果总结s

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、