> 文章列表 > 如何将字符串反转?

如何将字符串反转?

如何将字符串反转?

参考答案

  • 使用 StringBuilder 或 StringBuffer 的 reverse 方法,本质都调用了它们的父类 AbstractStringBuilder 的 reverse 方法实现。(JDK1.8)
  • 不考虑字符串中的字符是否是 Unicode 编码,自己实现。
  • 递归

 1. public AbstractStringBuilder reverse() {}

 验证:

public class TestReverseString {public static void main(String[] args) {String str = "ABCDE";System.out.println(reverseString(str));System.out.println(reverseStringByStringBuilderApi(str));System.out.println(reverseStringByRecursion(str));}/* 自己实现* @param str* @return*/public static String reverseString(String str) {if (str != null && str.length() > 0) {int len = str.length();char[] chars = new char[len];for (int i = len - 1; i >= 0; i--) {chars[len - 1 - i] = str.charAt(i);}return new String(chars);}return str;}/* 使用 StringBuilder* @param str* @return*/public static String reverseStringByStringBuilderApi(String str) {if (str != null && str.length() > 0) {return new StringBuilder(str).reverse().toString();}return str;}/* 递归* @param str* @return*/public static String reverseStringByRecursion(String str) {if (str == null || str.length() <= 1) {return str;}return reverseStringByRecursion(str.substring(1)) + str.charAt(0);}

String类的常用方法有哪些? 

String 类的常用方法: 

  • equals:字符串是否相同
  • equalsIgnoreCase:忽略大小写后字符串是否相同
  • compareTo:根据字符串中每个字符的Unicode编码进行比较
  • compareToIgnoreCase:根据字符串中每个字符的Unicode编码进行忽略大小写比较
  • indexOf:目标字符或字符串在源字符串中位置下标
  • lastIndexOf:目标字符或字符串在源字符串中最后一次出现的位置下标
  • valueOf:其他类型转字符串
  • charAt:获取指定下标位置的字符
  • codePointAt:指定下标的字符的Unicode编码
  • concat:追加字符串到当前字符串
  • isEmpty:字符串长度是否为0
  • contains:是否包含目标字符串
  • startsWith:是否以目标字符串开头
  • endsWith:是否以目标字符串结束
  • format:格式化字符串
  • getBytes:获取字符串的字节数组
  • getChars:获取字符串的指定长度字符数组
  • toCharArray:获取字符串的字符数组
  • join:以某字符串,连接某字符串数组
  • length:字符串字符数
  • matches:字符串是否匹配正则表达式
  • replace:字符串替换
  • replaceAll:带正则字符串替换
  • replaceFirst:替换第一个出现的目标字符串
  • split:以某正则表达式分割字符串
  • substring:截取字符串
  • toLowerCase:字符串转小写
  • toUpperCase:字符串转大写
  • trim:去字符串首尾空格