Java【算法分享 03】实用算法分享(拼写inStr、去掉字符串后边特定值、三者最小、计算表达式的值)不断增加中ing

简介: Java【算法分享 03】实用算法分享(拼写inStr、去掉字符串后边特定值、三者最小、计算表达式的值)不断增加中ing

1.算法列表

  • 拼写inStr
  • 去掉字符串后边的0
  • 三者最小值
  • 计算表达式的值

1.1 拼写inStr

/**
     * 带逗号的字符串转换成SQL里的inStr("a,b,c"->'a','b','c')
     *
     * @param stringWithComma 用逗号分隔的字符串 "a,b,c"
     * @return inStr可以用在SQL的in语句内 'a','b','c'
     */
    public String getInStr(String stringWithComma) {
        String splitSymbolComma = ",";
        ArrayList<String> strList = CollectionUtil.toList(stringWithComma.split(splitSymbolComma));
        return strList.stream().collect(Collectors.joining("\',\'", "\'", "\'"));
    }

1.2 去掉字符串后边的0

/**
     * 处理字符串后边的0(4100->41)
     *
     * @param str 字符串
     * @return 不带0的字符串
     */
    public String dealZero(String str) {
        String zeroStr = "0";
        if (str.endsWith(zeroStr)) {
            str = str.substring(0, str.length() - 1);
            return dealZero(str);
        } else {
            return str;
        }
    }

1.3 三者最小值

/**
     * 获取三者最小值
     *
     * @param one   值1
     * @param two   值2
     * @param three 值3
     * @return 最小值
     */
    public int min(int one, int two, int three) {
        return (one = Math.min(one, two)) < three ? one : three;
    }

1.4 计算表达式的值

/**
     * 计算表达式的值(1+1->2)
     *
     * @param scoreStr 表达式
     * @return 分数
     */
    private double calculateScoreByStr(String scoreStr) {
        double score = 0.0;
        if (StringUtils.isNotBlank(scoreStr)) {
            ScriptEngineManager sem = new ScriptEngineManager();
            ScriptEngine se = sem.getEngineByName("js");
            try {
                score = (double) se.eval(scoreStr + "*1.0");
            } catch (ScriptException e) {
                log.error("计算[{}]时出现异常", scoreStr);
            }
        }
        return score;
    }
目录
相关文章
|
5月前
|
设计模式 算法 搜索推荐
Java 设计模式之策略模式:灵活切换算法的艺术
策略模式通过封装不同算法并实现灵活切换,将算法与使用解耦。以支付为例,微信、支付宝等支付方式作为独立策略,购物车根据选择调用对应支付逻辑,提升代码可维护性与扩展性,避免冗长条件判断,符合开闭原则。
974 35
|
5月前
|
存储 人工智能 算法
从零掌握贪心算法Java版:LeetCode 10题实战解析(上)
在算法世界里,有一种思想如同生活中的"见好就收"——每次做出当前看来最优的选择,寄希望于通过局部最优达成全局最优。这种思想就是贪心算法,它以其简洁高效的特点,成为解决最优问题的利器。今天我们就来系统学习贪心算法的核心思想,并通过10道LeetCode经典题目实战演练,带你掌握这种"步步为营"的解题思维。
|
5月前
|
存储 算法 搜索推荐
《数据之美》:Java数据结构与算法精要
本系列深入探讨数据结构与算法的核心原理及Java实现,涵盖线性与非线性结构、常用算法分类、复杂度分析及集合框架应用,助你提升程序效率,掌握编程底层逻辑。
|
6月前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
494 108
|
6月前
|
算法 机器人
基于SOA海鸥优化算法的PID控制器最优控制参数计算matlab仿真
本课题研究基于海鸥优化算法(SOA)优化PID控制器参数的方法,通过MATLAB仿真对比传统PID控制效果。利用SOA算法优化PID的kp、ki、kd参数,以积分绝对误差(IAE)为适应度函数,提升系统响应速度与稳定性。仿真结果表明,SOA优化的PID控制器在阶跃响应和误差控制方面均优于传统方法,具有更快的收敛速度和更强的全局寻优能力,适用于复杂系统的参数整定。
|
7月前
|
机器学习/深度学习 Java 编译器
解锁硬件潜能:Java向量化计算,性能飙升W倍!
编译优化中的机器相关优化主要包括指令选择、寄存器分配、窥孔优化等,发生在编译后端,需考虑目标平台的指令集、寄存器、SIMD支持等硬件特性。向量化计算利用SIMD技术,实现数据级并行,大幅提升性能,尤其适用于图像处理、机器学习等领域。Java通过自动向量化和显式向量API(JDK 22标准)支持该技术。
306 4
|
7月前
|
运维 监控 算法
基于 Java 滑动窗口算法的局域网内部监控软件流量异常检测技术研究
本文探讨了滑动窗口算法在局域网流量监控中的应用,分析其在实时性、资源控制和多维分析等方面的优势,并提出优化策略,结合Java编程实现高效流量异常检测。
293 0
|
8月前
|
机器学习/深度学习 算法 Java
Java实现林火蔓延路径算法
记录正在进行的森林防火项目中林火蔓延功能,本篇文章可以较好的实现森林防火蔓延,但还存在很多不足,如:很多参数只能使用默认值,所以蔓延范围仅供参考。(如果底层设备获取的数据充足,那当我没说)。注:因林火蔓延涉及因素太多,如静可燃物载量、矿质阻尼系数等存在估值,所以得出的结果仅供参考。
232 6
|
8月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
428 14
|
Java Unix 数据库管理
java定时框架:表达式设置
Quartz中时间表达式的设置-----corn表达式 (注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知)   时间格式: ,   分别对应: 秒>分>小时>日>月>周>年,  举例: 1.
994 0