代码编织梦想

现象

Java中以空格为分割符完成字符串分割后,若两单词间有 x > 1 x > 1 x>1 个空格,则在单词列表 strs 中,此两单词间会多出 x − 1 x - 1 x1“空单词” (即"")

例子

剑指 Offer 58 - I. 翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"

示例 1:

输入: " the sky is blue"
输出: " blue is sky the"

示例 2:

输入: " hello world!  "
输出: “world! hello”
解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。

示例 3:

输入: “a good example”
输出: “example good a”
解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

说明:

  • 无空格字符构成一个单词。
  • 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
  • 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

注意:本题与主站 151 题相同:https://leetcode-cn.com/problems/reverse-words-in-a-string/

注意:此题对比原题有改动

解题思路

按空格切分字符串得到单词列表,然后倒序遍历单词列表,并将单词逐个添加至 StringBuilder,遇到空单词("")时跳过。

本题要注意的一个点是:在Java中以空格为分割符完成字符串分割后,若两单词间有 x > 1 x > 1 x>1 个空格,则在单词列表 strs 中,此两单词间会多出 x − 1 x - 1 x1“空单词” (即"")
在这里插入图片描述

Java代码

class Solution {
    public String reverseWords(String s) {
        if(s == null) return "";
        s.trim();//去除两边空格,返回一个新字符串又赋给了s
        String[] strs = s.split(" ");//按空格切分字符串
        StringBuilder sb = new StringBuilder();
        for(int i = strs.length - 1; i >= 0;i--){
            if(strs[i].equals("")) continue;//过滤空串
            sb.append(strs[i]).append(" ");
        }
        return sb.toString().trim();//转为字符串并去除最后多余的那个空格
    }
}

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/YouMing_Li/article/details/114700860

java 中用split分割字符串,最后的空格等不被拆分。-爱代码爱编程

      在使用java中的split按照“\t”,拆分字符串的时候,发现如果最后的几个字段是空,只是用\t分割,是连着的\t的话,就不会被分割,如 “d\tc\te\t\t\t”最后的几个\t就不会被分割,应该是在拆分之前对字符串进行了处理。导致的拆分字段个数错误。查了一下APi,需要在split中添加参数-1,String[] values = li

[转载]java三种方法拆分字符串-爱代码爱编程

字符串分割有三种方法,如下: 1.用split()方法进行分割,分割开的子字符串放入数组,然后进行处理。 示例代码如下: public class SplitTest { public static void mai

玩算法—字符串—替换空格_droy`z的博客-爱代码爱编程

题目: 请实现一个函数,将一个字符串中的每个空格替换成“@2019@”。 例如,当字符串为“We Are Javaer”,则经过替换之后的字符串为“We@2019@Are@2019@Javaer”。 要求: 时限限制1

python笔记 基础语法第15课 【文档txt的读取open(),read,readlines;写入write,writelines,append;分割字符串split(),合并字符串join()】_十八子远航的博客-爱代码爱编程

读取文件 三步骤:打开文件——读取文件——关闭文件 语法示例: file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8') 【file1

JAVA中split切割字符串(多种分隔符)-爱代码爱编程

开发中偶尔遇到切割字符串的场景,总结了几种常见的。 首先定义一个字符串: String str = "aa|bb ccvdd"; 1.(1)按照某一个普通字符切割字符串(比如按照v字符切割) String[] arr = str.split("v"); 结果如图: (2)按照某一个特殊字符切割字符串(比如按照|字符切割)         

卷毛0基础学习Golang-基础-map字典-爱代码爱编程

卷毛0基础学习Golang-基础-map字典 持续更新中-----欢迎收藏 Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的key-value对的集合,比如以身份证号作为唯一键来标识一个人的信息。Go语言中并没有提供一个set类型,但是map中的key也是不相同的,可以用map实现类似set的功能。 map格式为: ma

剑指 Offer 58 - I. 翻转单词顺序-Python题解-爱代码爱编程

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。 示例 1: 输入: “the sky is blue” 输出: “blue is sky the” 示例 2: 输入: " hello world! "

java——split的用法(字符串拆分)-爱代码爱编程

字符串拆分 public static void main(String[] args) { String str = "I Live In The Home"; String[] ret = str.split(" "); for (String x : ret){ System

java 换行分割_java中用换行符分割字符串-兼容各种操作系统-爱代码爱编程

在不同的操作系统中,对换号符的定义是不同的,比如: 1. \n unix,linux系统,好像新的mac也是这样的。 2. \r 有的mac系统 3. \r\n window系统。 自己观察,你会发现规律,其实用一个正则表达式就可以满足: \r?\n 下面是一段简单的java代码测试:public static void main(Strin

java split多个空格分割_Java用split分割含一个或多个空格的字符串代码示例-爱代码爱编程

本篇文章小编给大家分享一下Java用split分割含一个或多个空格的字符串代码示例,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。 使用正则表达式: 1.String的split方法支持正则表达式; 2.正则表达式s表示匹配任何空白字符,+表示匹配一次或多次。 比如待分割字符串为: String s

java数组可以append_StringBuffer类的append()方法可以将数组元素和空格连接成字符串。(2.0分)_学小易找答案...-爱代码爱编程

【判断题】HashSet是Set接口的一个实现类,它所存储的元素是可重复的,并且元素都是无序的。(2.0分) 【填空题】JAVA中 int类型对应的包装类是_____。 (2.0分) 【单选题】关于以下程序叙述正确的是_______。 class Base { Base(int i){ System.out.print(“Base ”); } }

java按照空格分割,Java用split实现分割含一个或多个空格的字符串-爱代码爱编程

Java用split实现分割含一个或多个空格的字符串 发布时间:2020-11-02 16:28:29 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关Java用split实现分割含一个或多个空格的字符串,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 使用正

python基本数据类型---数字&字符串-爱代码爱编程

python字符串 引入数字类型(Number)字符串类型(str)1.获取字符串中指定位置(索引)的值2.索引扩展--切片3.查看字符串的长度---len方法4.成员运算in和not in5.for循环6.字符串运算7.字符串的内置方法 引入 在内存中存储的数据可以是不同的数据类型。比如名字可以使用字符串存储,年龄可以使用数字存储,pyth

在阿里血拼8年整理出了学习笔记,已助10个朋友拿到offer-爱代码爱编程

起初在阿里工作的时候,什么都不会,那叫一个痛苦啊,工作的环境压力也大。没工作几天就快要熬不下去了。但这毕竟是自己走入社会以来的第一份工作,总要坚持一下吧,至少当时是那么想的。由于自己的技术功底并不好,各种技术也不懂,一切的一切都得重零开始。就这样一步一步的伴着眼泪和汗水坚持到了现在。工作压力大,节奏快,但是从技术上确实得到了成长,尤其是当你维护与大促相关的