Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >java字符串练习题2、反向输出英文字符串

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

作者头像
红目香薰
发布于 2023-01-13 02:35:11
发布于 2023-01-13 02:35:11
41000
代码可运行
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode
运行总次数:0
代码可运行

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

目录

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

题目 

源码:

优化效率

英文中的14个标点符号

英文符号图标

题目 

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

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

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

源码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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是为了减掉数组下标越界的异常而添加的,我们做这类题目一定要多加小心,因为题目的小坑,小雷阵的是一堆堆的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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了,也没啥难度。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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(省略号)

英文符号图标

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java字符串练习题7、验证回文串
方法1:使用StringBuffer处理掉符号和空格后累计在一起,最后与反向自身对象做equals的值比较。
红目香薰
2023/01/13
4150
java字符串练习题7、验证回文串
java字符串练习题1、反向输出字符串
反向输出字符串,这里的含义是给定一个字符串例如:我爱你,反向输出的结果就是:你爱我。
红目香薰
2023/01/10
4050
java字符串练习题1、反向输出字符串
java字符串练习题4、统计一行字符串中所有的字符类型数量
解析,写个循环,挨个判断字符类型后进行归类统计数量即可,但是我们的统计方式可以分为两种,可以直接ASCII码来判断,也可以通过【Character】包装类来直接判断类型,这里【Character】包装类给了很全的符号类型判断方法。我在文末留给大家了。
红目香薰
2023/01/13
5050
java字符串练习题4、统计一行字符串中所有的字符类型数量
Java中的字符串操作技巧
在Java编程语言中,字符串是最常用的数据类型之一。字符串是由一系列字符组成的不可变序列。在Java中,字符串主要通过String类来实现。本文将详细介绍Java字符串的使用方法及相关方法,帮助开发者更高效地处理字符串数据。
Front_Yue
2024/09/11
1580
Java中的字符串操作技巧
java字符串练习题6、最后一个单词的长度
输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”,长度为5。 示例 2:
红目香薰
2023/01/13
9150
java字符串练习题6、最后一个单词的长度
笔试题—字符串常见的算法题集锦
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/52602327
程序员徐公
2018/09/18
9540
Java字符串
String s3=new String(a);//后续对字符数组的修改不会影响字符串
用户7886150
2021/02/02
7410
java字符串的拆分_Java中的字符串分割 .
Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项:
全栈程序员站长
2022/08/26
3.7K0
Java 字符串的操作集合(记录日常学习的demo)
以下实例中我们通过字符串函数 compareTo (string) ,compareToIgnoreCase(String) 及 compareTo(object string) 来比较两个字符串,并返回字符串中第一个字母ASCII的差值。
默 语
2024/11/20
500
Java 字符串的操作集合(记录日常学习的demo)
java算法刷题01——字符串、数组、集合、基本数据类型
字符串、集合、数组、基本数据类型是java里最基础的知识点,但也是频频被使用的,在算法题里属于高频基础题,下面结合一些题目来学习这些知识点。
半旧518
2022/10/26
1K0
c#字符串操作方法实例
# 字符串是使用 string 关键字声明的一个字符数组。字符串是使用引号声明的,如下例所示: string s = "Hello, World!"; 字符串对象是“不可变的”,即它们一旦创建就无法更改。对字符串进行操作的方法实际上返回的是新的字符串对象。因此,出于性能方面的原因,大量的连接或其他涉及字符串的操作应当用 StringBuilder 类执行,如下所示: System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.App
欢醉
2018/01/22
1.8K0
java字符串练习题3、字符串中字符是否相同判断
这个题目也是没什么难度,需要使用的函数也就是charAt函数,根据对应下标来判断是否有重复的值内容,如果出现不是重复的我们就直接break返回结果即可,效率不会很低。
红目香薰
2023/01/13
4240
java字符串练习题3、字符串中字符是否相同判断
Java字符串(三)
在Java中,我们可以使用String.format()方法来格式化字符串。该方法的第一个参数为格式化字符串,格式化字符串中可以包含占位符,占位符使用%符号表示。例如:
玖叁叁
2023/05/07
2040
290. 单词模式
给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。
张伦聪zhangluncong
2022/10/26
1850
【Java】单词倒序输出
弗兰克的猫
2018/01/09
2.2K0
Java读取并转换字符串中的浮点数
在写Android接收蓝牙数据的时候,由于传过来的蓝牙数据转换后都为字符串格式,但是需要从其中提取出来浮点数,所以通过查阅资料写出了从字符串中提取并转换为浮点数的方法,特记录下来以供参考。
丹牛Daniel
2023/10/17
3130
【Java】用java实现统计字符串个数
统计某种字符串中某个字符或某个字符串出现的次数,以及每次出现的索引位置 有如下字符串: 患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?” 需求:请统计出该字符中*“咳嗽*”二字的出现次数。 代码如下:
用户7886150
2021/04/06
1.7K0
Java 对字符串操作的工具类,很全
目录 1 实现 1 实现 import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.springframework.util.AntPathMatcher; import com.ruoy
一写代码就开心
2023/02/01
1.1K0
字符串的学习
1> “==”与“equals”的区别 “==”判断的是两个字符串对象在内存中的首地址,就是判断是否是同一个字符串对象; 而equals()判断的是两个字符串对象的值。 2> 字符串的连接(concat  >>>  等同于“+”的作用) String s1= new String("你好,"); String s2= new String("张三"); String s3= s1.concat(s2);   >>>>> concat用于字符串的连接 System.out.println(s3);    
片刻
2018/01/15
5340
LeetCode笔记:290. Word Pattern
这里的模型和字符串都是字符串,我们先全部转化为字母数组和字符串数组,方便进行比较。
Cloudox
2021/11/23
1950
相关推荐
java字符串练习题7、验证回文串
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验