Java基础知识强化08:将字符串倒序输出(包括空格)的几种方法

1.最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了:

 1 package himi.hebao05;
 2
 3 public class TestDemo02 {
 4     public static void main(String[] args) {
 5         int i = 0;
 6         String text = "hebao I love you!";
 7         String result = " ";
 8         char[] charArray = text.toCharArray();
 9         for(int j = charArray.length-1; j>=0; j--) {
10                 result += charArray[j];
11         }
12         System.out.println(result);
13     }
14   }  

这里将String字符串类型的数据(末尾没有\0)转化为char[]字符数组,这样就可以一个个控制倒序输出:结果如下:

2.字符串定义为String类,转化为一个StringBuffer类,用StringBuffer类中的reverse()方法直接倒序字符串。

 1 package himi.hebao05;
 2
 3 public class TestDemo02 {
 4     public static void main(String[] args) {
 5         int i = 0;
 6         String text = "hebao I love you!";
 7   8         reverseString1(text);
 9     }
10
11
12     public static void reverseString1(String text) {
13         StringBuffer stringBuffer = new StringBuffer(text);
14         System.out.print(stringBuffer.reverse());
15     }
16
17 }

运行的结果如下:

3.对字符串转化为byte[] ,byte[]是将字符串每个字符存储为byte类型,但是不是char类型。所以这里不能直接倒序输出(不能类似1那样)。但是我们可以将字符串转化为byte[]之后进行元素的首尾对称交换,这样可以实现倒序输出的目的:

 1 package himi.hebao05;
 2
 3 public class TestDemo02 {
 4     public static void main(String[] args) {
 5         int i = 0;
 6         String text = "hebao I love you!";
 7         System.out.println(reverseString2(text));
 8
 9     }
10
11     public static String  reverseString2(String text) {
12         if(text == null || text.length() <0 ) {
13             return "ERROR";
14         }
15         byte[] bytes = text.getBytes();
16         for(int i=0; i<bytes.length/2; i++) {
17             byte b= bytes[i];
18             bytes[i] = bytes[bytes.length-1-i];
19             bytes[bytes.length-1-i] = b;
20         }
21
22         return  new String(bytes);
23     }
24
25 }

输出结果如下:

时间: 2024-12-12 08:42:23

Java基础知识强化08:将字符串倒序输出(包括空格)的几种方法的相关文章

Java基础知识强化(用于自我巩固)以及审查

1. Java 和 JDK 的关系 JDK(Java Development Kit)Java 开发工具包,它包括:编译器.Java 运行环境(JRE,Java Runtime Environment).JVM(Java 虚拟机)监控和诊断工具等 Java 则表示一种开发语言. 2. Java 程序是怎么执行的? 日常工作中使用的开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通过打包工具把项目打包成 jar 包或者 war 包,放入 Tomcat 等

Java基础知识强化103:JSON解析框架汇总

1.Gson Gson是Google提供的一个能够将Java对象转换成相应JSON表达形式的一个开源Java类库,当然用Gson也能将JSON字符串转换成与之等价的Java对象.Gson对于任何Java对象都有效,包括那些预先存在没有源代码的对象. 现在已经有一些能将Java对象转换成JSON的开源项目了.但是大多数项目都要求你在类文件中加入Java注解,而当你无法改动源代码的时候这是无法做到的.并且它们也不支持Java泛型.但是Gson却将这两点作为自己非常重要的设计目标. 目标 使用toJs

Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)

1. 基础知识: Android(java)学习笔记61:多线程程序的引入    ~    Android(java)学习笔记76:多线程-定时器概述和使用 

java基础知识强化52:Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. 1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”.面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经验.成就和技能可以给企业带来的价

Java基础知识强化99:Java 常见异常及趣味解释

常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎:) 1. java.langjava.lang软件包是java语言的核心部分,它提供了java中的基础类. java.lang.Object,这是java.lang的根类,也是所有java类的超类. java.lang ArithmeticException 出现异常的运算条件时,抛出此异常.例如,一个整数"除以零" 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读你的算术表达式并再次尝试. Arr

Java基础知识强化之集合框架笔记03:Collection集合的功能概述

1. Collection功能概述:Collection是集合的顶层接口,它子体系有重复的,有唯一性,有有序的,无序的. (1)添加功能 1 boolean add(Object obj):添加一个元素 2 boolean addAll(Collection c):添加一个集合的元素 (2)删除功能 1 void clear():移除所有元素 (3)判断功能 1 boolean contains(Object obj):判断集合中是否包含指定的元素 2 boolean containsAll(C

Java基础知识强化104:Java常量池理解与总结

一.相关概念 1. 什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变! final修饰的变量有三种:静态变量.实例变量和局部变量,分别表示三种类型的常量. 2. Class文件中的常量池 在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受:再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版本号:再接着是用于存放常量的常量池,由于常量的数量是不固定的,所以常量池的入口放置一个U2类型的数据(const

Java基础知识强化105:打印数组的方法总结

1. 使用for循环打印数组. 2. 使用Arrays工具类,将数组转化为有序的List打印出来. 3. 使用Arrays工具类,使用Arrays.toString()输出数组内容. 上面三种方法打印数组的示例代码如下: package com.himi.printarray; import java.util.Arrays; public class AnormalArray { public static void main(String[] args) { /** * 使用for循环打印数

Java基础知识强化21:java中length、length()、size()区别

1.java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.2.java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!这个例子来演示这两个方法和一个属性的用法:            public static void main(String[] args) {