在Java中反转字符串的10种方法[Snippets]

40 篇文章 0 订阅
22 篇文章 0 订阅

在本文中,我们将讨论如何以10种不同的方式在Java中反转String。在本文中,我们将编写10个Java程序来反转String。例如,从“javaguides”到“sediugavaj”的反向字符串。

用Java反转字符串的10种方法

1.使用+(String Concatenation)运算符

 

 。javaguides。corejava。串 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  ReverseWithStringConcat {
    public  static  void  main(String [] args){
        ReverseWithStringConcat  concat  =  new  ReverseWithStringConcat();
        concat。reverseWithStringConcat(“javaguides”);
    }
 
    private  String  reverseWithStringConcat(String  input){
        String  output  =  new  String();
        对于诠释 我 =(输入。长度()-  1); 我 > =  0 ; 我-){
            输出 + =(输入。的charAt(我));
        }
 
        显示(输入,输出);
        返回 输出 ;
    }
 
    private  void  display(String  input,String  output){
        系统。出。println(“input string ::”  +  input);
        系统。出。println(“output string ::”  +  output);
    }
}

 

产量

 输入 字符串 :: javaguides
 输出 字符串 :: sediugavaj

 

2.使用StringBuilder

 。javaguides。corejava。串 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  ReverseWithStringBuilderBuiltinMethod {
    public  static  void  main(String [] args){
        ReverseWithStringBuilderBuiltinMethod  builtinMethod  =  new  ReverseWithStringBuilderBuiltinMethod();
        builtinMethod。reverseWithStringBuilderBuiltinMethod(“javaguides”);
    }
 
    public  String  reverseWithStringBuilderBuiltinMethod(String  string){
        final  StringBuilder  builder  =  new  StringBuilder(string);
        显示(字符串,助洗剂。反向()。的toString());
        返回 建设者。反转()。toString();
    }
 
    private  void  display(String  input,String  output){
        系统。出。println(“input string ::”  +  input);
        系统。出。println(“output string ::”  +  output);
    }
}

 

产量

 输入 字符串 :: javaguides
 输出 字符串 :: sediugavaj

 

3.使用String charAt方法

 。javaguides。corejava。串 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  ReverseWithStringChatAt {
    public  static  void  main(String [] args){
        ReverseWithStringChatAt  reverseWithStringBuilder  =  new  ReverseWithStringChatAt();
        reverseWithStringBuilder。reverseWithStringBuilder(“javaguides”);
    }
 
    public  String  reverseWithStringChatAt(String  string){
        final  StringBuilder  builder  =  new  StringBuilder();
        对于诠释 我 =(字符串。长度()-  1); 我 > =  0 ; 我-){
            建设者。追加(字符串。的charAt(我));
        }
        显示(字符串,助洗剂。的toString());
        返回 建设者。toString();
    }
 
    private  void  display(String  input,String  output){
        系统。出。println(“input string ::”  +  input);
        系统。出。println(“output string ::”  +  output);
    }
}

 

产量

 输入 字符串 :: javaguides
 输出 字符串 :: sediugavaj

 

4.使用交换字符反转字符串

 。javaguides。corejava。串 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
公共  ReverseStringWithSwaps {
    public  static  void  main(String [] args){
        ReverseStringWithSwaps  stringWithSwaps  =  new  ReverseStringWithSwaps();
        stringWithSwaps。reverseWithSwaps(“javaguides”);
    }
 
    public  String  reverseWithSwaps(String  string){
        final  char [] array  =  string。toCharArray();
        final  int  length  =  array。长度 -  1 ;
        final  int  half  =(int)数学。地板(阵列。长度 /  2);
 
        char  c ;
        forint  i  =  length ; i  > =  half ; i -){
            c  =  array [ length  -  i ];
            array [ length  -  i ] =  array [ i ];
            array [ i ] =  c ;
        }
        显示(字符串,字符串。的valueOf(阵列));
        return  String。valueOf(array);
    }
 
    private  void  display(String  input,String  output){
        系统。出。println(“input string ::”  +  input);
        系统。出。println(“output string ::”  +  output);
    }
}

 

产量

 输入 字符串 :: javaguides
 输出 字符串 :: sediugavaj

 

5.使用XOR(^)运算符反转字符串

 。javaguides。corejava。串 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  ReverseStringWithXOR {
    public  static  void  main(String [] args){
        ReverseStringWithXOR  stringWithXOR  =  new  ReverseStringWithXOR();
        stringWithXOR。reverseWithXOR(“javaguides”);
    }
 
    public  String  reverseWithXOR(String  string){
        final  char [] array  =  string。toCharArray();
        final  int  length  =  array。长度 ;
        final  int  half  =(int)数学。地板(阵列。长度 /  2);
 
        forint  i  =  0 ; i  <  half ; i ++){
            array [ i ] ^ =  array [ length  -  i  -  1 ];
            array [ length  -  i  -  1 ] ^ =  array [ i ];
            array [ i ] ^ =  array [ length  -  i  -  1 ];
        }
        显示(字符串,字符串。的valueOf(阵列));
        return  String。valueOf(array);
    }
 
    private  void  display(String  input,String  output){
        系统。出。println(“input string ::”  +  input);
        系统。出。println(“output string ::”  +  output);
    }
}

 

产量

 输入 字符串 :: javaguides
 输出 字符串 :: sediugavaj

 

6.使用Stack

 。javaguides。corejava。串 ;
 
导入 java。util。堆栈 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  ReverseStringUsingStack {
    //使用堆栈和字符数组在Java中反转字符串的函数
    public  static  String  reverse(String  str){
        //基本情况:如果string为null或为空
        如果(STR  ==   ||  海峡。等号(“” ))
            返回 str ;
 
        //创建一个空的字符堆栈
        Stack  <  Character  >  stack  =  new  Stack  <  Character  >();
 
        //将给定字符串的每个字符都压入堆栈
        char [] ch  =  str。toCharArray();
        对于诠释 我 =  0 ; 我 <  STR。长度(); 我++)
            堆栈。推(ch [ i ]);
 
        //从索引0开始
        int  k  =  0 ;
 
        //从堆栈中弹出字符,直到它为空
        (!栈。的isEmpty()){
            //将每个弹出的字符分配回字符数组
            ch [ k ++ ] =  堆栈。pop();
        }
 
        //将字符数组转换为字符串并返回它
        return  String。copyValueOf(ch);
    }
 
    public  static  void  main(String [] args){
        String  str  =  “javaguides” ;
 
        str  =  reverse(str); //字符串是不可变的
 
        系统。出。println(“给定字符串的反转是:”  +  str);
    }
}

 

产量

反向 的 在 给定的 字符串 是:sediugavaj

 

7.使用Collections reverse()方法

 。javaguides。corejava。串 ;
 
导入 java。util。ArrayList ;
导入 java。util。收藏 ;
导入 java。util。清单 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  ReverseStringUsingCollectionsReverseMethod {
 
    //使用Collections.reverse()在Java中反转字符串的函数
    public  static  String  reverse(String  str){
        //基本情况:如果string为null或为空
        如果(STR  ==   ||  海峡。等号(“” ))
            返回 str ;
 
        //创建一个空字符列表
        List  <  Character  >  list  =  new  ArrayList  <  Character  >();
 
        //将给定字符串的每个字符都推入其中
        对于 Ç:STR。toCharArray())
            清单。添加(c);
 
        //使用java.util.Collections反向列表reverse()
        收藏。反向(列表);
 
        //使用StringBuilder将ArrayList转换为String并返回它
        StringBuilder的 建设者 =   的StringBuilder(名单。大小());
        for字符 c:列表)
            建设者。追加(c);
 
        返回 建设者。toString();
    }
 
    public  static  void  main(String [] args){
        String  str  =  “Java Guides” ;
 
        // String是不可变的
        str  =  reverse(str);
 
        系统。出。println(“给定字符串的反转是:”  +  str);
    }
}

 

产量

反向 的 在 给定的 字符串 是:sediuG  avaJ

 

8.使用字节数组

 。javaguides。corejava。串 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  ReverseStringUsingByteArray {
    //使用字节数组在Java中反转字符串的函数
    public  static  String  reverse(String  str){
        //如果string为null或为空则返回
        如果(STR  ==   ||  海峡。等号(“” ))
            返回 str ;
 
        //将字符串转换为字节
        byte [] bytes  =  str。getBytes();
 
        //从给定字符串的两个端点l和h开始
        //并在循环的每次迭代中递增l和递减h
        //直到两个终点相交(l> = h)
        INT  升 =  0,ħ  =  STR。长度()-  1 ; 升 <  ħ ; 升++,ħ -){
            //在l和h处交换值
            byte  temp  =  bytes [ l ];
            bytes [ l ] =  bytes [ h ];
            bytes [ h ] =  temp ;
        }
 
        //将字节数组转换回字符串
        return  new  String(bytes);
    }
 
    public  static  void  main(String [] args){
        String  str  =  “Java Guides” ;
 
        // String是不可变的
        str  =  reverse(str);
 
        系统。出。println(“给定字符串的反转是:”  +  str);
    }
}

 

产量

反向 的 在 给定的 字符串 是:sediuG  avaJ

 

9.使用substring()方法

 。javaguides。corejava。串 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  UsingSubStringFunction {
    //使用递归在Java中反转字符串的函数
    private  static  String  reverse(String  str){
        //基本情况:如果string为null或为空
        如果(STR  ==   ||  海峡。等号(“” ))
            返回 str ;
 
        //最后一个字符+递归剩下的字符串
        返回 str。的charAt(STR。长度()-  1)+  反向(STR。子串(0,STR。长度()-  1));
    }
 
    public  static  void  main(String [] args){
        String  str  =  “javaguides” ;
 
        //字符串是不可变的
        str  =  reverse(str);
 
        系统。出。println(“给定字符串的反转是:”  +  str);
    }
}

 

产量

反向 的 在 给定的 字符串 是:sediugavaj

 

10.使用递归

 。javaguides。corejava。串 ;
 
/ **
 * 
 * @author Ramesh Fadatare
 *
 * /
public  class  UsingRecursion {
    static  int  i  =  0 ;
 
    //使用静态变量在Java中反转字符串的递归函数
    private  static  void  reverse(char [] str,int  k){
        //如果我们到达了字符串的末尾
        如果(ķ  ==  STR。长度)
            回归 ;
 
        //递归下一个角色
        反转(str,k  +  1);
 
        if(i  <=  k){
            char  temp  =  str [ k ];
            str [ k ] =  str [ i ];
            str [ i ++ ] =  temp ;
        }
    }
 
    public  static  String  reverse(String  str){
        //基本情况:如果string为null或为空
        如果(STR  ==   ||  海峡。等号(“” ))
            返回 str ;
 
        //将字符串转换为字符数组
        char [] A  =  str。toCharArray();
 
        //反向字符数组
        反向(A,0);
 
        //将字符数组转换为字符串
        return  String。copyValueOf(A);
    }
 
    public  static  void  main(String [] args){
        String  str  =  “Java Guides” ;
 
        //字符串是不可变的
        str  =  reverse(str);
 
        系统。出。println(“给定字符串的反转是:”  +  str);
    }
}

 

产量

反向 的 在 给定的 字符串 是:sediuG  avaJ
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值