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 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料