java语言 百文网手机站

Java常用字符串反转的五种方案

时间:2021-04-10 16:06:40 java语言 我要投稿

Java常用字符串反转的五种方案

  Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,以下是为大家分享的Java常用字符串反转的.五种方案,供大家参考借鉴,欢迎浏览!

Java常用字符串反转的五种方案

  第一个类是运行类Run.java

  package com.imooc.strreverse;

  import java.util.Scanner;

  public class Run {

  public Run() {

  System.out.print("请输入一个字符串:");

  Scanner sc = new Scanner(System.in);

  String str = sc.next();

  System.out.println();

  String reversedStrByArray = new Reverse(str).reverseByArray();

  System.out.println("对应反转字符串为[Array]:"+ reversedStrByArray);

  String reversedStrByStack = new Reverse(str).reverseByStack();

  System.out.println("对应反转字符串为[Stack]:"+ reversedStrByStack);

  String reversedStrBySort = new Reverse(str).reverseBySort();

  System.out.println("对应反转字符串为[逆序遍历]:"+ reversedStrBySort);

  String reversedStrByBit = new Reverse(str).reverseByBit();

  System.out.println("对应反转字符串为[位运算]:"+ reversedStrByBit);

  String reversedStrByRecursive = new Reverse(str).reverseByRecursive(str);

  System.out.println("对应反转字符串为[递归]:"+ reversedStrByRecursive); }

  public static void main(String[] args) {

  new Run();

  }

  }

  第二段代码是实现类Reverse.java

  package com.imooc.strreverse;

  import java.util.Stack;

  public class Reverse {

  String str = new String();

  public Reverse(String str) {

  this.str = str;

  }

  //用数组实现

  public String reverseByArray() {

  if(str == null str.length() == 0) {

  return str;

  }

  int len = str.length();

  char[] chArray = str.toCharArray();

  for(int i= 0; i< len/2; i++) {

  char temp;

  temp = chArray[i];

  chArray[i] = chArray[len- 1- i];

  chArray[len- 1- i] = temp;

  }

  return new String(chArray);

  }

  //用栈实现

  public String reverseByStack() {

  if(str == null str.length() == 0) {

  return str;

  }

  Stack strStack = new Stack();

  char[] chArray = str.toCharArray();

  for(Character ch: chArray) {

  strStack.push(ch);

  }

  int len = str.length();

  for(int i= 0; i< len; i++) { chArray[i] = strStack.pop();

  }

  return new String(chArray);

  }

  //用逆序遍历实现

  public String reverseBySort() {

  if(str == null str.length() == 0) {

  return str;

  }

  StringBuilder sb = new StringBuilder();

  for(int i= str.length()- 1; i>= 0; i--) {

  sb.append(str.charAt(i));

  }

  return sb.toString();

  }

  //用位运算实现

  public String reverseByBit() {

  if(str == null str.length() == 0) {

  return str;

  }

  char[] chArray = str.toCharArray();

  int len = str.length();

  for(int i= 0; i< len/ 2; i++) {

  chArray[i]^= chArray[len- 1- i];

  chArray[len- 1- i]^= chArray[i];

  chArray[i]^= chArray[len- 1- i];

  }

  return new String(chArray);

  }

  //用递归实现

  public String reverseByRecursive(String str) {

  if(str == null str.length() == 0) {

  return str;

  }

  int len = str.length();

  if(len == 1) {

  return str;

  } else {

  return reverseByRecursive(str.substring(1))+ str.charAt(0);

  }

  }

  }


【Java常用字符串反转的五种方案】相关文章:

java常用字符串介绍12-06

Java字符串(String)09-27

Java实现字符串倒序输出的常用方法11-27

关于基于Java字符串==与 equals11-24

php的字符串常用函数09-12

java判断字符串是否为数字的几个方法04-11

java常用代码11-23

Java常用的语法错误12-06

java常用快捷键03-08