Java基础知识强化08:将字符串倒序输出(包括空格)的几种方法
1.最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了:
package himi.hebao05;
public class TestDemo02 {
public static void main(String[] args) {
int i = 0;
String text = "hebao I love you!";
String result = " ";
char[] charArray = text.toCharArray();
for(int j = charArray.length-1; j>=0; j--) {
result += charArray[j];
}
System.out.println(result);
}
}
这里将String字符串类型的数据(末尾没有\0)转化为char[]字符数组,这样就可以一个个控制倒序输出:结果如下:

2.字符串定义为String类,转化为一个StringBuffer类,用StringBuffer类中的reverse()方法直接倒序字符串。
package himi.hebao05;
public class TestDemo02 {
public static void main(String[] args) {
int i = 0;
String text = "hebao I love you!";
reverseString1(text);
}
public static void reverseString1(String text) {
StringBuffer stringBuffer = new StringBuffer(text);
System.out.print(stringBuffer.reverse());
}
}
运行的结果如下:

3. 对字符串转化为byte[],byte[]是将字符串每个字符存储为byte类型,但是不是char类型。所以这里不能直接倒序输出(不能类似1那样)。但是我们可以将字符串转化为byte[]之后进行元素的首尾对称交换,这样可以实现倒序输出的目的:
package himi.hebao05;
public class TestDemo02 {
public static void main(String[] args) {
int i = 0;
String text = "hebao I love you!";
System.out.println(reverseString2(text));
}
public static String reverseString2(String text) {
if(text == null || text.length() <0 ) {
return "ERROR";
}
byte[] bytes = text.getBytes();
for(int i=0; i<bytes.length/2; i++) {
byte b= bytes[i];
bytes[i] = bytes[bytes.length-1-i];
bytes[bytes.length-1-i] = b;
}
return new String(bytes);
}
}
输出结果如下:

4. 也可以使用第三方工具包StringUtils中的字符串反转方法
Java基础知识强化08:将字符串倒序输出(包括空格)的几种方法的更多相关文章
- Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...
- Java基础知识强化75:正则表达式之分割功能(字符串中的数字排序案例)
1. 案例分析: 我有如下一个字符串:"91 27 46 38 50" 写代码实现最终输出结果是:"27 38 46 50 91" 分析: (1)定义一个 ...
- Java基础知识强化之网络编程笔记08:TCP之客户端键盘录入服务器控制台输出
1. 客户端: package cn.itcast_08; import java.io.BufferedReader; import java.io.BufferedWriter; import j ...
- Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)
1. 基础知识: Android(java)学习笔记61:多线程程序的引入 ~ Android(java)学习笔记76:多线程-定时器概述和使用
- Java基础知识强化14:Java死亡竞赛题目解析
一个小型网站上发布了一个称为Java“死亡竞赛”的新项目.测验发布后,超过20000位开发者参加了测验.网站以20道关于Java的多选题为主.我们得到了众多开发者的测验统计数据,今天,我们非常乐意 ...
- Java基础知识强化105:打印数组的方法总结
1. 使用for循环打印数组. 2. 使用Arrays工具类,将数组转化为有序的List打印出来. 3. 使用Arrays工具类,使用Arrays.toString()输出数组内容. 上面三种方法打印 ...
- Java基础知识强化103:Java常量池理解与总结
一.相关概念 1. 什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变! final修饰的变量有三种:静态变量.实例变量和局部变量,分别表示三种类型的常量. 2. Class文件中的 ...
- Java基础知识强化99:Java 常见异常及趣味解释
常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎:) 1. java.langjava.lang软件包是java语言的核心部分,它提供了java中的基础类. java.lan ...
- Java基础知识强化之集合框架笔记03:Collection集合的功能概述
1. Collection功能概述:Collection是集合的顶层接口,它子体系有重复的,有唯一性,有有序的,无序的. (1)添加功能 boolean add(Object obj):添加一个元素 ...
随机推荐
- Objective-C property属性解析
@interface … @property (原子性,可写性,内存管理) id name; @end 原子性: nonatomic, atomic 默认atomic 可写性: rea ...
- 上网必备AdBlock,远离广告!
浏览器广告拦截插件,绝对上网必备... 从此告别讨厌的百度边栏广告!!! https://getadblock.com/ https://adblockplus.org/zh_CN/
- 安卓天天练练(十一)用list绑数据
之前在练练ListView的时候就有个 BaseAdapter ba = new BaseAdapter() { 用Adapter来绑数据的方法,该方法中 LinearLayout ll=new Li ...
- 如何对 Android 库进行依赖管理?
Android 开发人员为项目选择库的时候,考虑的因素不仅仅是功能.可用性.性能.文档丰富度和技术支持情况.他们还关心库的大小,以及要添加的方法数量.因为项目越大,依赖也越多,要把应用的方法数量控制在 ...
- 【UVALive - 3487】 Duopoly(网络流-最小割)
Description The mobile network market in country XYZ used to be dominated by two large corporations, ...
- 【POJ3710】Christmas Game (博弈-树上的删边问题)
[题目] Description Harry and Sally were playing games at Christmas Eve. They drew some Christmas trees ...
- ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别
在iBATIS中isNull用于判断参数是否为Null,isNotNull相反 isEmpty判断参数是否为Null或者空,满足其中一个条件则其true isNotEmpty相反,当参数既不为Null ...
- AD10 怎样精确导入CAD 文件
1. 在 AD10 中 PCB 的形状根据实际情况设定,设定的尺寸等信息略.2. CAD 导入的格式要 CAD2004 以下的版本,AutoCAD 文件(*.DXF 或*.DWG)即可. 3. ...
- R语言 数据的输入方式总结
1.使用C函数连接数据 2.使用c,cbind,rbind结合变量 3.使用Vector函数结合数据 4.使用矩阵结合数据5.使用data.frame函数结合数据 6.使用list函数结合数据 c 向 ...
- MVC 5 App 通过 Facebook OAuth2 登陆(Sign-on)的问题
今天做了下MVC 5 App通过Google, Twitter, Linkedin 和 Facebook进行登录的例子, 算是对Asp.net Identity的一个入门,做的过程中发现了如下的问题, ...