java字母反过来_java之字母反转~~ - Plight - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
字符串的反转输出
这也是面试题中常考的一道。我们就以一个包含了全部26个英文字母,同时又具有完整含义的最短句子作为例子来完成解答。先来看一下这个句子:
引用
A quick brown fox jumps over the lazy dog.(一只轻巧的棕色狐狸从那条懒狗身上跳了过去。)
最常用的方式就是反向取出每个位置的字符,然后依次将它们输出到控制台:
public class StringReverse {
public static void main(String[] args) {
// 原始字符串
String s = "A quick brown fox jumps over the lazy dog.";
System.out.println("原始的字符串:" + s);
System.out.print("反转后字符串:");
for (int i = s.length(); i > 0; i--) {
System.out.print(s.charAt(i - 1));
}
// 也可以转换成数组后再反转,不过有点多此一举
char[] data = s.toCharArray();
System.out.println();
System.out.print("反转后字符串:");
for (int i = data.length; i > 0; i--) {
System.out.print(data[i - 1]);
}
}
}
public class StringReverse {
public static void main(String[] args) {
// 原始字符串
String s = "A quick brown fox jumps over the lazy dog.";
System.out.println("原始的字符串:" + s);
System.out.print("反转后字符串:");
for (int i = s.length(); i > 0; i--) {
System.out.print(s.charAt(i - 1));
// 也可以转换成数组后再反转,不过有点多此一举
char[] data = s.toCharArray();
System.out.println();
System.out.print("反转后字符串:");
for (int i = data.length; i > 0; i--) {
System.out.print(data[i - 1]);
}
}
}
运行结果:
1、原始的字符串:A quick brown fox jumps over the lazy dog.
2、反转后字符串:.god yzal eht revo spmuj xof nworb kciuq A
3、反转后字符串:.god yzal eht revo spmuj xof nworb kciuq A
以上两种方式虽然常用,但却不是最简单的方式,更简单的是使用现有的方法:
Java代码
public class StringReverse {
public static void main(String[] args) {
// 原始字符串
String s = "A quick brown fox jumps over the lazy dog.";
System.out.println("原始的字符串:" + s);
System.out.print("反转后字符串:");
StringBuffer buff = new StringBuffer(s);
// java.lang.StringBuffer类的reverse()方法可以将字符串反转
System.out.println(buff.reverse().toString());
}
}
运行结果:
1、原始的字符串:A quick brown fox jumps over the lazy dog.
2、反转后字符串:.god yzal eht revo spmuj xof nworb kciuq A
编辑特别推荐:
a
原题:
以单词为最小单位翻转字符串
Write the function String reverseStringWordByWord(String input) that reverses
a string word by word. For instance,
reverseStringWordByWord("The house is blue") --> "blue is house The"
reverseStringWordByWord("Zed is dead") --> "dead is Zed"
reverseStringWordByWord("All-in-one") --> "All-in-one"
面试系列4种的实现,比较费空间,因为多申请了一段空间来保存结果。
在看了其他高手的实现后,发现可以不用申请空间,并且循环的次数更少,也可以实现相同的效果。
大体思路是:
原字符串: The house is blue
先翻转整个字符串-> eulb si esuoh ehT
再翻转单个单词。
代码:
/********************************************************************
created: 2006/06/16
filename: C:\Documents and Settings\Administrator\桌面\flwo\reverse2.c
file path: C:\Documents and Settings\Administrator\桌面\flwo
file base: reverse
file ext: c
author: A.TNG
version: 0.0.1
purpose: 以单词为最小单位翻转字符串-2 优化版
Write the function String reverseStringWordByWord(String input)
that reverses a string word by word. For instance,
reverseStringWordByWord("The house is blue") --> "blue is house The"
reverseStringWordByWord("Zed is dead") --> "dead is Zed"
reverseStringWordByWord("All-in-one") --> "All-in-one"
参考其他高手的思路:
先翻转整个字符串-> eulb si esuoh ehT
再翻转单个单词。
*********************************************************************/
#include
#include
#include
#define REVERSE_WORD(p1, p2) while (p1 <= p2) { char ch; ch = *p1; *p1 = *p2; *p2 = ch; p1++; p2--; }
/*
* name: reverse_src_word_by_word
* params:
* des [out] 输出字符串, des 指向实现申请的空间
* src [in] 输入字符串,需要处理的字符串
* return:
* 处理完成后的 des 指针
* notes:
* 以单词为最下单位翻转字符串
* 优化: 先翻转整个字符串,再翻转单个单词
*
* author: A.TNG 2006/06/16 10:37
*/
char * reverse_str_word_by_word2(char *src)
{
char *p1, *p2;
int n_src_len;
if (NULL == src)
return NULL;
/* 先把整个字符串翻转一次 */
n_src_len = strlen(src);
p1 = src; p2 = src + n_src_len - 1;
REVERSE_WORD(p1, p2);
#if 0
while (p1 <= p2)
{
/* 交换头字符和尾字符 */
char ch;
ch = *p1; *p1 = *p2; *p2 = ch;
p1++; p2--;
}
#endif
/* 再翻转单个单词 */
p1 = src; p2 = p1;
while ('\0' != *p2)
{
if (' ' == *p2)
{
char *p;
p = p2 - 1;
REVERSE_WORD(p1, p);
#if 0
while (p1 <= p)
{
char ch;
ch = *p1; *p1 = *p; *p = ch;
p1++; p--;
}
#endif
p2++;
p1 = p2;
}
else
{
p2++;
}
}
/* 翻转最后一个单词 */
p2--;
REVERSE_WORD(p1, p2);
#if 0
while (p1 <= p2)
{
char ch;
ch = *p1; *p1 = *p2; *p2 = ch;
p1++; p2--;
}
#endif
return src;
}
/*
* name: main
* params:
* none
* return:
* none
* notes:
* none
*
* author: A.TNG 2006/06/16 10:37
java字母反过来_java之字母反转~~ - Plight - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...相关推荐
- java对import语句_Java的import语句 - 不积跬步,无以至千里 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
51Testing软件测试网]2S+K"rZ/bP*j 程序员可以使用两种import语句:51Testing软件测试网o$UN5EQh 3oZc4n f9P"CoQ;T]0单类型 ...
- java 测试排序_java排序的几种方法 - 善待自己的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
冒泡:publicclassBubbleSort { publicstaticvoidbubbleSort(int[] array) { intlength = array.length -1; fo ...
- Java帧率,android应用性能优化之帧率 - hellominefriend的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
转自:http://www.cnblogs.com/myzh/archive/2013/03/17/2965225.html 1.纵观全局 对于顺畅度的分析,首先要知道一个整体情况,是局部,还是全局, ...
- java自定义findbugs规则,定制 findbugs规则 - 阿里巴巴一个测试架构师 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
这类文章极少,字节码操作需要对becl库及jvm字节码操作有一定常识.参考: http://blog.csdn.net/lywybo/archive/2010/03/01/5335748.aspx i ...
- java软件测试经典案例,java语言编程案例 - Mrsjjl的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
1.编程实现:二分搜索算法 解答: public class SearchTest { /** 被搜索数据的大小 */ private static final int size = 5000000; ...
- java 过滤中文_Java 过滤字母、数字和中文 正则表达式
[java]代码库/** * @Title:FilterStr.java * @Package:com.you.dao * @Description:Java中过滤数字.字母和中文 * @Author ...
- java 随机字母数字_Java生成字母和数字组成的随机字符串
在业务开发过程中经常遇到生成随机字符串,用于密钥.密码.口令或其他标识使用. 下面就介绍一下通过Java程序生成这些随机字符串的方法. 1. 随机生成n位由字母或数字组成的字符串 public sta ...
- java 数字 字母 中文_java中英文字母、数字、中文所占字节数
先了解下基本的单位: 1.比特(bit)即一个二进制位,例如100011就是6比特. 2.字节(byte),这是计算机中数据类型最基本的单位了,8bit组成1byte. java要确定每种基本类型所占 ...
- java 输出字母图形_java打印字母菱形,怎么打!!!
哈哈!终于明白怎么打出字母菱形了.下面是代码请高手指点一二,呵呵!charstart='A';//开始的字符System.out.print("请输入三角形的行高:");intnu ...
最新文章
- 一步一步学习SignalR进行实时通信_6_案例
- CRMEB微信商城源码下载
- (软件工程复习核心重点)第二章可行性研究-第四节:数据字典
- 大数据学习笔记48:Flume Sources(Flume源)
- python django 快速实现注册,登录,注销
- 学习 jQuery -2 document 对象的 ready 事件
- hive数据去重测试
- 【bug解决】No OpKernel was registered to support Op 'CudnnRNN' with these attrs.
- 论文 | 研究方法 —— 结构方程
- java 线程 block_JAVA线程的BLOCK状态实例分析
- 【正点原子STM32连载】 第六十四章 综合测试实验摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- 我叫MT4怎么在电脑上玩?我叫MT4手游安卓模拟器电脑版操作教程
- 在软件测试面试中,碰到这些「送命题」,大牛教你一招应对
- 升压电路(Boost)的设计原理、参数计算及MATLAB仿真
- r720换固态硬盘后如何重装系统_电脑安装完固态硬盘后如何重装系统?
- 汇编指令及其英文全称
- 阿里云服务器挖矿程序解决流程
- JointJS入门实例01-在JOINTJS元素中使用HTML
- 如何翻译DeepFaceLab(DeepFake)的交互式合成器
- Mysql关于处理emoji表情包报错问题的处理
热门文章
- 如何让PHP运行更高效
- 这公司需要再利用CPU热能:于是淘汰i7换AMD Ryzen
- javascript正则表达式总结(test|match|search|replace|split|exec)
- Avaya以1亿美元向Extreme销售网络业务
- SQL Server修改表结构后批量更新所有视图
- CSS 实现加载动画之四-圆点旋转
- 个人管理 - 程序员的四个阶段
- linux fedora kde桌面设置全局显示字体大小
- Hadoop MapReduce指定yarn队列: -Dmapreduce.job.queuename
- win10 + mac双系统安装常用工具