Java字符串反转常见的几种方式?

(1)通过StringBuilder的reverse()方法,速度最快:

 1 public class StringReverse {
 2     public static void main(String[] args) {
 3         String str="hello";
 4         System.out.println(reverse(str));
 5
 6     }
 7     public static StringBuilder reverse(String str){
 8         return new StringBuilder(str).reverse();
 9     }
10 }

(2)通过递归实现,比较高大上:

 1 public class StringReverse {
 2     public static void main(String[] args) {
 3         String str="hello";
 4         System.out.println(reverse(str));
 5
 6     }
 7     public static String reverse(String str){
 8         int len=str.length();
 9         if(len==1)
10             return str;
11         //subString(1)表示把字符串中索引1之后的字串拿出来;charAt(0)表示取字符串的第一个字符
12         return reverse(str.substring(1))+str.charAt(0);
13     }
14 }

(3)通过charAt()方法:

 1 public class StringReverse {
 2     public static void main(String[] args) {
 3         String str="hello";
 4         System.out.println(reverse(str));
 5
 6     }
 7     public static String reverse(String str){
 8         String ans="";
 9         for(int i=str.length()-1;i>=0;i--){
10             char c=str.charAt(i);
11             ans+=c;
12         }
13         return ans;
14     }
15 }

(4)通过String的toCharArray()方法

 1 public class StringReverse {
 2     public static void main(String[] args) {
 3         String str="hello";
 4         System.out.println(reverse(str));
 5
 6     }
 7     public static String reverse(String str){
 8         char[] chars = str.toCharArray();
 9         String ans="";
10         for (int i = chars.length - 1; i >= 0; i--) {
11             ans+=chars[i];
12         }
13         return ans;
14     }
15 }

原文地址:https://www.cnblogs.com/treasury/p/12593600.html

时间: 2024-08-29 00:06:41

Java字符串反转常见的几种方式?的相关文章

java基础知识回顾之java Thread类学习(三)--java线程实现常见的两种方式实现好处:

总结:实现Runnable接口比继承Thread类更有优势: 1.因为java只能单继承,实现Runnable接口可以避免单继承的局限性 2.继承Thread类,多个线程不能处理或者共享同一个资源,但是实现Runnable接口可以处理同一个资源. 下面我们做个测试:验证下.车站的售票系统售票的例子,车站的各个售票口相当于各个线程,我们先使用第一种方法几继承Thread类的方式实现: 代码如下: package com.lp.ecjtu.Thread; /** * * @author Admini

字符串反转实现的几种方式

方式一:将字符串反向输出来,不改变内存(递归实现) void reverse_string(char *str) { /*遇到'\0'什么也不做,函数结束*/ if(*str == '\0') ; else { /*输出下一个*/ reverse_string(str + 1); cout<<*str; } } 方式二:改变内存(交换法) /*非递归实现:操作内存*/ char *reverse_string1(char *str) { char *left = str; //存放字符数组的最

JAVA中集合输出的四种方式

在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public static void main(String[] args) throws Exception { Set<Person> javaProgramers = new HashSet<Person>(); javaProgramers.add(new Person("aaron&qu

java中设置代理的两种方式

1 前言 有时候我们的程序中要提供可以使用代理访问网络,代理的方式包括http.https.ftp.socks代理.比如在IE浏览器设置代理. 那我们在我们的java程序中使用代理呢,有如下两种方式.直接上代码. 2 采用设置系统属性 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 import jav

Java文件上传的几种方式

文件上传与文件上传一样重要.在Java中,要实现文件上传,可以有两种方式: 1.通过Servlet类上传 2.通过Struts框架实现上传 这两种方式的根本还是通过Servlet进行IO流的操作. 一.通过Servlet类上传 1.编写Sevlet类 package com.chanshuyi.upload; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.

java读取XML文件的四种方式

java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <NO>A1234</NO> <ADDR>河南省郑州市</ADDR> </VALUE> <VALUE> <NO>B1234</NO> <ADDR>河南省郑州市二七区&

java中获取路径的几种方式

总是忘记, 备份一下,方便下次用. 第一种: File directory = new File("");//参数为空 String courseFile = directory.getCanonicalPath() ;System.out.println(courseFile); 结果:C:\Documents and Settings\Administrator\workspace\projectName获取当前类的所在工程路径; 第二种: File f = new File(th

9.9-全栈Java笔记:遍历集合的N种方式总结&Collections工具类

遍历集合的N种方式总结 [示例1]遍历List方法1,使用普通for循环 for(int i=0;i<list.size();i++){         //list为集合的对象名 String temp = (String)list.get(i); System.out.println(temp); } [示例2]遍历List方法2,使用增强for循环(使用泛型定义类型!) for (String   temp : list) { System.out.println(temp); } [示例

java 执行sql脚本的3种方式 (ant,ibatis,ScriptRunner)

package com.unmi; import java.io.*; import org.apache.tools.ant.*; import org.apache.tools.ant.taskdefs.*; import org.apache.tools.ant.types.*; /** * 调用 ant.jar 的 SQLExec 执行 SQL 脚本文件 * @author Unmi */ public class AntExecSql { /** * @param args */ pu