跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava算法

Java 自定义等级字符串比较逻辑分析

Java 自定义等级字符串比较逻辑通过字符数组拆分与逐位比对实现。方法包含长度判断及正负号处理,核心在于 bijiao 函数中的多层条件分支。代码中存在 shifouxiangt 返回值未赋值等潜在逻辑问题,需优化递归调用与边界条件检查以确保评级准确性。

dehua dong发布于 2025/2/23更新于 2026/9/1054 浏览
Java 自定义等级字符串比较逻辑分析
public class TestMap {
    public static void main(String[] args) {
        String str = "AAA+";
        String str1 = "BBB+";
        System.out.println(doAppraise("A", "AA")); // false
    }

    public static boolean doAppraise(String str, String str2) {
        char[] appraiseMoody = splitString(str);
        char[] appraiseLimit = splitString(str2);
        boolean result = false;
        result = bijiao(appraiseMoody, appraiseLimit);
        return result;
    }

    public static boolean bijiao(char[] appraiseMoody, char[] appraiseLimit) {
        char[] jia = "+".toCharArray();
        char[] jian = "-".toCharArray();
        int length = appraiseMoody.length;
        int lengthLimit = appraiseLimit.length;
        boolean result = false;

        if (((appraiseMoody[0] == jia[0]) || (appraiseMoody[0] == jian[0])) &&
            ((appraiseLimit[0] == jia[0]) || (appraiseLimit[0] == jian[0]))) {
            result = shifouxiangt(appraiseMoody[0], appraiseLimit[0]);
        } else {
            if (appraiseMoody[0] == appraiseLimit[0]) {
                if (length == 1 && lengthLimit == 1) {
                    return true;
                } else if (length == 1 && lengthLimit > 1) {
                    if (appraiseLimit[1] == jia[0]) {
                        return false;
                    } else {
                        return false;
                    }
                } else if (length > 1 && lengthLimit == 1) {
                    if (appraiseMoody[0] == jia[0]) {
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    if (((appraiseMoody[1] == jia[0]) || (appraiseMoody[1] == jian[0])) &&
                        ((appraiseLimit[1] == jia[0]) || (appraiseLimit[1] == jian[0]))) {
                        result = shifouxiangt(appraiseMoody[1], appraiseLimit[1]);
                    } else {
                        if (appraiseMoody[1] == appraiseLimit[1]) {
                            if (length == 2 && lengthLimit == 2) {
                                return true;
                            } else if (length == 2 && lengthLimit > 2) {
                                if (appraiseLimit[1] == jia[0]) {
                                    return false;
                                } else {
                                    return false;
                                }
                            } else if (length > 2 && lengthLimit == 2) {
                                if (appraiseMoody[2] == jia[0]) {
                                    return true;
                                } else if (appraiseMoody[2] >= 64 && appraiseMoody[2] <= appraiseMoody[1]) {
                                    return true;
                                } else if (appraiseMoody[2] == jian[0]) {
                                    return false;
                                }
                            } else {
                                if (((appraiseMoody[2] == jia[0]) || (appraiseMoody[2] == jian[0])) &&
                                    ((appraiseLimit[2] == jia[0]) || (appraiseLimit[2] == jian[0]))) {
                                    result = shifouxiangt(appraiseMoody[2], appraiseLimit[2]);
                                } else {
                                    if (appraiseMoody[2] == appraiseLimit[2]) {
                                        if (length == 3 && lengthLimit == 3) {
                                            return true;
                                        } else if (length == 3 && lengthLimit > 3) {
                                            if (appraiseLimit[3] == jia[0]) {
                                                return false;
                                            } else {
                                                return false;
                                            }
                                        } else if (length > 3 && lengthLimit == 3) {
                                            if (appraiseMoody[3] == jia[0]) {
                                                return true;
                                            } else {
                                                return false;
                                            }
                                        } else {
                                            return shifouxiangt(appraiseMoody[3], appraiseLimit[3]);
                                        }
                                    } else if (appraiseMoody[2] < 64 && appraiseMoody[2] < appraiseLimit[2]) {
                                        return true;
                                    } else if (appraiseMoody[2] < 64 && appraiseLimit[1] < appraiseLimit[2]) {
                                        return true;
                                    } else if (appraiseMoody[2] < appraiseLimit[2]) {
                                        return true;
                                    } else {
                                        return false;
                                    }
                                }
                            }
                        } else if (appraiseMoody[1] < appraiseLimit[1]) {
                            return true;
                        } else {
                            return false;
                        }
                    }
                }
            } else if (appraiseMoody[0] < appraiseLimit[0]) {
                return true;
            } else {
                return false;
            }
        }
        return result;
    }

    public static char[] splitString(String str) {
        return str.toCharArray();
    }

    public static boolean shifouxiangt(int a, int b) {
        char[] jia = "+".toCharArray();
        char[] jian = "-".toCharArray();
        boolean result = false;
        if ((a == jia[0] && b == jia[0]) || (a == jian[0] && b == jian[0])) {
            result = true;
        } else if ((a == jia[0] && b == jian[0]) || (a == jia[0] && b != jian[0])) {
            result = true;
        } else {
            result = false;
        }
        return result;
    }
}

更多推荐文章

查看全部
  • Spring Boot 数据访问与数据库集成实战
  • Qoder AI 编码工具功能详解
  • 前端大文件上传实战:分片、断点续传与优化策略
  • ChatGLM 实战:基于 LangChain 构建私有知识库
  • HTTP Cookie 深入解析:Web 会话追踪机制
  • C++ Vector 容器详解
  • 数据科学学习 Python 的四个阶段
  • php正则表达式替换URL链接地址为指定url的形式
  • 知网 AIGC 检测原理与降低 AI 疑似度策略
  • 基于 MINGW 的跨平台 C++ 应用开发实战技巧
  • 高校电动车租赁系统设计与实现:SpringBoot+Vue+MySQL
  • ICLR 2024 杰出论文公布:大模型成最大赢家
  • 鸿蒙 APP 开发:性能优化与 Next 原生合规
  • SKResNet 架构详解:融合选择性卷积与残差结构
  • 创业公司追逐 AGI 愿景:真的必要吗?
  • MySQL 变量详解:系统、用户自定义与局部变量应用
  • AI 大模型开发实战指南与学习路径全解析
  • AI 智能答题助手:Chrome 扩展实时解析实践
  • whisper.cpp 跨平台语音识别部署实战指南
  • Llama 3:Meta 新一代开源大语言模型详解

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online