【Java】翻转字符串中的每个单词
一位CSDN的朋友在Blink区问的问题
白天确实没时间详解这个题,晚上来解一下(Java语言描述)。
这里不清楚引号算不算,就姑且当没有引号来处理。
分析
很容易想到的是用String的split()方法,因为可以分隔空格,然后形成一个数组,反向遍历就行。
但该想法不够成熟(我理解答主是为了快速给出简洁的思路而不是不会),这样有几个问题:
- 题干给的意思是首尾可以直接空,但是你不能把它算上,所以首尾必须先排掉空白字符。
- 题目中的空白字符可以有多个,必须当做一个处理。
- 反向逆序输出收尾字符不能是空格(即不可简单的循环,str+" ")
这就要求我们认真的分析这个题,在获取输入以后,该去做什么。
- 首先应该是去掉首尾的空白字符,用trim()
- 然后用split()分割,但是分割符不是" “而是”\s+",这是简单的正则表达式,表示任意数量(1~n)的空白字符。
- 随后生成的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】翻转字符串中的每个单词相关推荐
- java翻转字符串中的单词
效果: 输入: "java and python" 输出: "avaj dna nohtyp" 代码: 版本1: 不考虑字符串开头有空格,单词间有多个空格空格的 ...
- LeetCode151|翻转字符串中的单词III
一,翻转字符串中的单词III 1,问题简述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 2,示例简述 示例:输入:"Let's take Leet ...
- JavaScript把字符串中每一个单词的字母翻转
js把字符串中每一个单词的字母翻转 var arr2 = "hellow world" function reverses(str) { var arr3 = [] ...
- java从字符串中提取数字
1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只 ...
- 实现统计一个字符串中的每个单词出现的次数--基于Go语言
实现统计一个字符串中的每个单词出现的次数–基于Go语言 package mainimport ("fmt""strings" )func main() {//统 ...
- java 包含汉字,【转载】Java判断字符串中是不是包含汉字
[转载]Java判断字符串中是否包含汉字 import java.util.regex.Matcher; import java.util.regex.Pattern; public class If ...
- C语言字符串中最后一个单词的长度的算法(附完整源码)
C语言字符串中最后一个单词的长度的算法 C语言字符串中最后一个单词的长度的算法完整源码(定义,实现,main函数测试) C语言字符串中最后一个单词的长度的算法完整源码(定义,实现,main函数测试) ...
- Java求字符串中出现次数最多的字符
Java求字符串中出现次数最多的字符 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51933611 Java ...
- java 包含汉字,java判断字符串中是否包含汉字
java判断字符串中是否包含汉字 package com.zuidaima.util; /** [email protected] www.zuidaima.com **/ public class ...
最新文章
- mysql附件卸载_彻底卸载mysql
- mfc编写鼠标键盘_黑客为什么都不用鼠标?进来你就懂了!
- linux下安装telnet服务
- Tensorflow图像调整大小
- Zabbix server is not running:the information displayed may not be current
- ubuntu离线安装fish
- Linux常用视频播放器
- RFC791:INTERNET PROTOCOL网络协议
- 微信小程序实现文件上传
- devops学习(三) K8环境部署jenkins
- jwplayer +ffmpeg+red5 实现摄像头的直播
- Python eval()和exec()函数详解
- MybatisPlus乐观锁配置
- 工作簿(Workbook)基本操作应用示例(一)
- Signal ()函数详细介绍 Linux函数
- sparql查询mysql_Sparql查询语言基础学习(一)
- 机器人香囊_信学堂手工香包制作心得
- Vim q-quit - 用 q 键关闭窗口
- 天线方向图的形成原理及用MATLAB画出天线方向图
- 角色权限分配与路由配置