u011100157 2014-02-21 12:04 采纳率: 0%
浏览 3665

用java实现字符串的镜像翻转

用java实现一个方法,将一个字符串进行镜像翻转,例如ABC翻转为CBA,又如1234翻转为3412,再如abcde翻转为decab。

  • 写回答

3条回答

  • 谈笑Mr.Q 2014-02-24 13:42
    关注

    public static String doMirroringConvert(String str) {
    str = convertStr(str);
    // 字符串长度
    int size = str.length();
    // 是否是偶数
    int IsEven = size % 2;
    int centeEndIndex = size % 2 == 0 ? size >> 1 : (size - 1) >> 1;
    StringBuilder sb = new StringBuilder();

    // 字符串长度为偶数
    if (IsEven == 0) {
        String start = convertStr(str.substring(0, centeEndIndex));
        String end = convertStr(str.substring(centeEndIndex, size));
        sb.append(start).append(end);
    }
    // 字符串长度为基数
    else {
        String start = convertStr(str.substring(0, centeEndIndex));
        String center = convertStr(str.substring(centeEndIndex, centeEndIndex + 1));
        String end = convertStr(str.substring(centeEndIndex + 1, size));
        sb.append(start).append(center).append(end);
    }
    
    return sb.toString();
    

    }
    public static String convertStr(String str) {
    // 将String 对象转换为可改变的StringBuffer类对象,然后调用StringBuffer类的reverse()方法实现反转
    String strReverse = new StringBuffer(str).reverse().toString();
    return strReverse;
    }
    算是一个勉强的实现吧,性能方面很差,只是一个初步的想法。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿