java字符串练习题2、反向输出英文字符串


目录

java字符串练习题2、反向输出英文字符串

题目

源码:

优化效率

英文中的14个标点符号

英文符号图标


题目

反向输出英文文章的难度在于单词不能有错误的顺序,如果单词都翻过来输出那就没法玩了。很难看得懂了。

例如:I Have A Dream反向输出Dream A Have I

如果是直接方向输出就是:maerD A evaH I很明显这样将很难的正常读取。

源码:

package com.item.action;public class Demo {public static void main(String[] args) {String str = "I Have A Dream";// 字符串通过split函数使用【 】空格,分割为字符串数组String[] strArr = str.split(" ");// 创建一个新的用于存储单词的容器String[] strArr1 = new String[strArr.length];for (int i = 0; i < strArr.length; i++) {// 我们从右向左一次将数据输入到新数组中strArr1[i] = strArr[strArr.length - i - 1];}//便利新数组for (int i = 0; i < strArr1.length; i++) {if(i==strArr1.length-1) {System.out.println(strArr1[i]);}else {System.out.print(strArr1[i]+" ");}}}
}

输出效果:

优化效率

这里使用的是StringBuffer来优化的,直接在判断过程中赋值给StringBuffer,通过判断是否是最后一个来判定是否给加空格符号,这样我们一个单词的字符串就能按照单词的方式反向输出了。这里反向输出我没使用reverse函数,这里直接通过数组赋值时进行倒序赋值的方式进行处理的,这个也好理解,-i是去掉当前的进度留下对应的反向查询坐标,再-1是为了减掉数组下标越界的异常而添加的,我们做这类题目一定要多加小心,因为题目的小坑,小雷阵的是一堆堆的。

package com.item.action;public class Demo {public static void main(String[] args) {String str = "I Have A Dream";// 字符串通过split函数使用【 】空格,分割为字符串数组String[] strArr = str.split(" ");// 创建一个新的用于存储单词的容器String[] strArr1 = new String[strArr.length];StringBuffer sb = new StringBuffer();for (int i = 0; i < strArr.length; i++) {// 我们从右向左一次将数据输入到新数组strArr1[i] = strArr[strArr.length - i - 1];// 如果不是最后一个单词则追加该单词和空格,最后一个则只追加该单词if (i != strArr.length - 1) {sb.append(strArr1[i]+" ");} else {sb.append(strArr1[i]);}}System.out.println(sb.toString());}
}

输出效果:

其实,这个题目多少有些问题,因为没考虑到一句话结束的符号情况,英文中会出现很多【,】与【.】这些符号如有没有考虑的话也会完整的打乱所有语句的顺序,就例如:I Have A Dream.我这里加了一个【.】那么在操作的过程中就没有针对【.】进行处理,在这里就会出现异常的情况,那么这种情况解决起来的难度也不是很大,最直接的就是将【,】与【.】直接替换成【 ,】与【 .】这样就一切OK了,也没啥难度。

我们在这里进行一下测试,语句我也的也不会很长:

package com.item.action;public class Demo {public static void main(String[] args) {String str = "I Have A Dream.";str = str.replace(".", " .");// 字符串通过split函数使用【 】空格,分割为字符串数组String[] strArr = str.split(" ");// 创建一个新的用于存储单词的容器String[] strArr1 = new String[strArr.length];StringBuffer sb = new StringBuffer();for (int i = 0; i < strArr.length; i++) {// 我们从右向左一次将数据输入到新数组strArr1[i] = strArr[strArr.length - i - 1];// 这里单独添加一个结束判断【 .】if (strArr[strArr.length - i - 1].equals(".")) {sb.append(" .");continue;}if (i != strArr.length - 1) {sb.append(strArr1[i] + " ");} else {sb.append(strArr1[i]);}}System.out.println(sb.toString());}
}

我这里单独添加了一个判断,只要拆分后出现了【.】我就输出【 .】这就小小的解决了这个问题。不过符号的内容肯定会很多,如果是一篇完整的文章肯定还需要一个单独的数组列表作为记录符号的容器,我们依据这个符号的数组容器进行逐一的处理即可,相对难度有一些,但是不大。

英文中的14个标点符号

分别是:

  1. the period (句号 )
  2. question mark (问号)
  3. exclamation point(感叹号)
  4. comma(逗号)
  5. semicolon(分号)
  6. colon(冒号)
  7. dash(破折号)
  8. hyphen(连字符)
  9. parentheses(圆括号)
  10. brackets(括号 )
  11. braces(括弧)
  12. apostrophe(撇号; 省略符号; 所有格符号)
  13. quotation marks(引号)
  14. and ellipses(省略号)

英文符号图标

希望能对大家有一定的价值。

java字符串练习题2、反向输出英文字符串相关推荐

  1. c语言将字符串按空格分割_字符串单词输入反向输出怎么搞?C语言又带着二维数组来了!...

    01 今天给大家安利一份代码,是关于字符串单词输入反向输出的实现效果的,就比如等你输入"welcome to China",程序会经过处理输出"China to welc ...

  2. Java—输入数字星期,输出英文(switch语句)

    Java-输入数字星期,输出英文(switch语句) Description 从键盘上输入数字星期,然后输出它的英文. 其对应关系是: 1 Monday 2 Tuesday 3 Wednesday 4 ...

  3. java读取InputStream输入流后输出String字符串

    为什么80%的码农都做不了架构师?>>>    功能:例子中输出字符编码为GBK,输入流保护 50KB,读取InputStream输入流后输出String字符串. private s ...

  4. Java程序设计(八)----输出英文字母表、希腊字母表

    * 程序的版权和版本声明部分 * Copyright (c) 2012, 烟台大学计算机学院学生 * All rights reserved. * 作 者: 刘镇 * 完成日期: 2012 年 10 ...

  5. Java匿名类习题_输出英文字母表和希腊字母表

    输出英文字母表和希腊字母表 abstract class InputAlphabet{public abstract void input(); }class InputEnglish extends ...

  6. java生成指定位数的随机英文字符串

    //先生成10位英文随机字符串 String upw_random = RandomStringUtils.randomAlphabetic(10);

  7. python用三种方式定义字符串、并依次输出_Python 字符串格式化输出的3种方式

    原博文 2019-12-28 21:17 − 1. % print ('我叫%s, 身高%scm' % (name,height)) ** 传入的值为元组,依次填充 %s :占位符 str()& ...

  8. python学习笔记之反向输出英文句子

    1.编写reverse_sentence()函数体 def reverse_sentence(s):s = s.split()s = " ".join(s[::-1])return ...

  9. Java面向对象练习题之字母输出

    编写Java应用程序.首先,定义一个ZiMuBiao类,它有一个方法void output(int x),如果x的值是1,在控制台打印出大写的英文字母表:如果x的值是2,在 控制台打印出小写的英文字母 ...

最新文章

  1. 让页面只能在微信浏览器里访问
  2. Mysql大表的优化
  3. autofac 作用域_控制作用域和生命周期
  4. HttpClient, 使用C#操作Web
  5. bash awk_Bash指南,Linux终端技巧,DevOps错误,Python,awk,NASA等
  6. Java并发编程之CyclicBarrier
  7. 机房收费系统合作版(五)——初识托付
  8. host-only局域网络
  9. c# mysql清理_C# 中清空sql数据库中的数据
  10. 【python小工具】vbb文件提取json
  11. ANSYS ICEM CFD非结构体网格生成实例——换热器
  12. LTE CAT M1模块为辅助生活系统提供了宽带和智能手机的替代方案
  13. 博客中常用的Emoji表情整理,欢迎自取
  14. storyBoard中TopLayout和SuperView
  15. vba 输出文本 m Linux,利用VBA实现EXCEL数据输出TXT等文本文件
  16. 一篇文章搞懂 HDFS ACLs权限管理
  17. python 学习笔记第一篇---下载网页内所有图片
  18. 程序员职场规划之走向技术管理-安晓辉-专题视频课程
  19. 第五届蓝桥杯C/C++本科B组(真题试做)(9~10)
  20. 已知抛物线与直线相交两点和抛物线顶点,求抛物线和直线所围成的面积?

热门文章

  1. 初探python爬虫(三)——cookie和session
  2. 单片机学习笔记(Arduino Uno r3)
  3. IT人内卷化,成长与进步
  4. qt tcp接收缓冲区设置_TCP传输中缓冲区多大合适
  5. 如何营造游戏的打击感(二):连续打击
  6. 带你全面了解自动化测试框架—从理论到工具
  7. python生成马保国敲架子鼓动图二维码(彩色)
  8. 【技术博客】2020.04.28-简单塔防游戏和棋牌游戏构架学习 ——学习系列博客(一)构架初探
  9. 学术前沿 | 私人部门数据的经济学应用
  10. Unity在移动端iphone/ipad上的触屏手势