一位CSDN的朋友在Blink区问的问题


白天确实没时间详解这个题,晚上来解一下(Java语言描述)。
这里不清楚引号算不算,就姑且当没有引号来处理。

分析

很容易想到的是用String的split()方法,因为可以分隔空格,然后形成一个数组,反向遍历就行。
但该想法不够成熟(我理解答主是为了快速给出简洁的思路而不是不会),这样有几个问题:

  1. 题干给的意思是首尾可以直接空,但是你不能把它算上,所以首尾必须先排掉空白字符。
  2. 题目中的空白字符可以有多个,必须当做一个处理。
  3. 反向逆序输出收尾字符不能是空格(即不可简单的循环,str+" ")

这就要求我们认真的分析这个题,在获取输入以后,该去做什么。

  1. 首先应该是去掉首尾的空白字符,用trim()
  2. 然后用split()分割,但是分割符不是" “而是”\s+",这是简单的正则表达式,表示任意数量(1~n)的空白字符。
  3. 随后生成的String数组再进行逆序遍历就行了,建议用StringBuilder,如果你真的看过String加法运算符的实现机理是多么麻烦的话。再就是注意末尾不带空格。

编程实现

import java.util.Scanner;public class SplitSpacesTest {public static void main(String[] args) {//获取输入Scanner scan = new Scanner(System.in);String str = scan.nextLine();//先去掉收尾空格,再去以任意个数空白符作为分隔符(基于正则表达式)String[] strArr = str.trim().split("\\s+");//创建StringBuilder对象,不支持多线程(支持也没用,白费性能)StringBuilder builder = new StringBuilder("");//获取数组长度后面会用int len = strArr.length;//数组空就不做这种处理if (len > 0) {for (int i = len-1; i > 0; i--) {builder.append(strArr[i] + " ");}builder.append(strArr[0]);}//不论空不空,输出个结果就行System.out.println(builder.toString());//关闭输入流scan.close();}}

感想

简单的问题,但是想要处理的没有什么毛病却不简单,我们还是要大胆地多去尝试、仔细地分析判断!
匆忙完成,不足之处还请指出,感谢。

【Java】翻转字符串中的每个单词相关推荐

  1. java翻转字符串中的单词

    效果: 输入: "java and python" 输出: "avaj dna nohtyp" 代码: 版本1: 不考虑字符串开头有空格,单词间有多个空格空格的 ...

  2. LeetCode151|翻转字符串中的单词III

    一,翻转字符串中的单词III 1,问题简述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 2,示例简述 示例:输入:"Let's take Leet ...

  3. JavaScript把字符串中每一个单词的字母翻转

    js把字符串中每一个单词的字母翻转 var arr2 = "hellow world" function reverses(str) {         var arr3 = [] ...

  4. java从字符串中提取数字

    1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只 ...

  5. 实现统计一个字符串中的每个单词出现的次数--基于Go语言

    实现统计一个字符串中的每个单词出现的次数–基于Go语言 package mainimport ("fmt""strings" )func main() {//统 ...

  6. java 包含汉字,【转载】Java判断字符串中是不是包含汉字

    [转载]Java判断字符串中是否包含汉字 import java.util.regex.Matcher; import java.util.regex.Pattern; public class If ...

  7. C语言字符串中最后一个单词的长度的算法(附完整源码)

    C语言字符串中最后一个单词的长度的算法 C语言字符串中最后一个单词的长度的算法完整源码(定义,实现,main函数测试) C语言字符串中最后一个单词的长度的算法完整源码(定义,实现,main函数测试) ...

  8. Java求字符串中出现次数最多的字符

    Java求字符串中出现次数最多的字符  [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51933611      Java ...

  9. java 包含汉字,java判断字符串中是否包含汉字

    java判断字符串中是否包含汉字 package com.zuidaima.util; /** [email protected] www.zuidaima.com **/ public class ...

最新文章

  1. mysql附件卸载_彻底卸载mysql
  2. mfc编写鼠标键盘_黑客为什么都不用鼠标?进来你就懂了!
  3. linux下安装telnet服务
  4. Tensorflow图像调整大小
  5. Zabbix server is not running:the information displayed may not be current
  6. ubuntu离线安装fish
  7. Linux常用视频播放器
  8. RFC791:INTERNET PROTOCOL网络协议
  9. 微信小程序实现文件上传
  10. devops学习(三) K8环境部署jenkins
  11. jwplayer +ffmpeg+red5 实现摄像头的直播
  12. Python eval()和exec()函数详解
  13. MybatisPlus乐观锁配置
  14. 工作簿(Workbook)基本操作应用示例(一)
  15. Signal ()函数详细介绍 Linux函数
  16. sparql查询mysql_Sparql查询语言基础学习(一)
  17. 机器人香囊_信学堂手工香包制作心得
  18. Vim q-quit - 用 q 键关闭窗口
  19. 天线方向图的形成原理及用MATLAB画出天线方向图
  20. 角色权限分配与路由配置

热门文章

  1. ASP.NET Request.UrlReferrer 问题
  2. Unity3d 札记-Let's try shooting 知识点汇总
  3. hdu5726-GCD-ST表+二分
  4. 小白学数据分析--留存率使用的窘境
  5. Terasoluna(中文)
  6. PHP_VERSION获取php版本
  7. 配置apache支持PHP(win7)
  8. 频谱扩展 matlab,简单的直接扩展频谱通信系统仿真分析
  9. 对应版本_Office 开发版本号与版本对应关系
  10. android uber启动动画,仿 Uber 视频背景登录界面以及登录动画