当前位置: 首页 > article >正文

如何将字符串反转?

参考答案

  • 使用 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:去字符串首尾空格

http://www.kler.cn/a/3141.html

相关文章:

  • 商密测评题库详解:商用密码应用安全性评估从业人员考核题库详细解析(9)
  • 【美】H1B、F1、CPT、Day 1 CPT、OPT、B1/B2转F1 的核心区别及适用场景
  • 【go语言】gorm 快速入门
  • 电商系统-用户认证(三)基于公钥解析JWT令牌
  • 【Leetcode刷题记录】166. 分数到小数
  • Linux——网络(tcp)
  • Java开发常用网址,推荐一些能帮助我们提升开发效率和学识巩固的网址,值得收藏
  • 反向传播算法的算法原理与Python实现
  • 6.网络爬虫——BeautifulSoup详讲与实战
  • C/C++获取文件名的方法(__FILE__,__builtin_FILE(),__BASE_FILE__)
  • 数据结构中的堆
  • java与Spring的循环依赖
  • 指针进阶(中)
  • 对于并发的学习-AQS
  • JVM学习.04. Java内存模型与线程模型
  • 【数据结构与算法】队列和栈的相互实现以及循环队列
  • 有手就行 -- 搭建图床(PicGo+腾讯云)
  • 交叉编译说明:工具链安装和环境变量配置
  • 如何优雅编写测试用例
  • Linux基本命令
  • MongoDB基本操作+集成SpringBoot+实战案例
  • 宝刀未老?低代码何德何能受大厂们的推崇
  • WebSocket 测试工具
  • Windows中: ‘ssh‘ 不是内部或外部命令 解决办法
  • 【Vue全家桶】详解Vue Router(一)
  • UML类与类之间的关系