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;
    }
目录
相关文章
|
2月前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
354 108
|
30天前
|
设计模式 算法 搜索推荐
Java 设计模式之策略模式:灵活切换算法的艺术
策略模式通过封装不同算法并实现灵活切换,将算法与使用解耦。以支付为例,微信、支付宝等支付方式作为独立策略,购物车根据选择调用对应支付逻辑,提升代码可维护性与扩展性,避免冗长条件判断,符合开闭原则。
252 35
|
3月前
|
安全 Java API
Java中的Lambda表达式:简洁与功能的结合
Java中的Lambda表达式:简洁与功能的结合
428 211
|
3月前
|
安全 Java
Java中的Switch表达式:更简洁的多路分支
Java中的Switch表达式:更简洁的多路分支
476 211
|
1月前
|
存储 算法 搜索推荐
《数据之美》:Java数据结构与算法精要
本系列深入探讨数据结构与算法的核心原理及Java实现,涵盖线性与非线性结构、常用算法分类、复杂度分析及集合框架应用,助你提升程序效率,掌握编程底层逻辑。
|
1月前
|
存储 人工智能 算法
从零掌握贪心算法Java版:LeetCode 10题实战解析(上)
在算法世界里,有一种思想如同生活中的"见好就收"——每次做出当前看来最优的选择,寄希望于通过局部最优达成全局最优。这种思想就是贪心算法,它以其简洁高效的特点,成为解决最优问题的利器。今天我们就来系统学习贪心算法的核心思想,并通过10道LeetCode经典题目实战演练,带你掌握这种"步步为营"的解题思维。
|
3月前
|
Java 编译器 API
Java Lambda表达式与函数式编程入门
Lambda表达式是Java 8引入的重要特性,简化了函数式编程的实现方式。它通过简洁的语法替代传统的匿名内部类,使代码更清晰、易读。本文深入讲解Lambda表达式的基本语法、函数式接口、方法引用等核心概念,并结合集合操作、线程处理、事件回调等实战案例,帮助开发者掌握现代Java编程技巧。同时,还解析了面试中高频出现的相关问题,助你深入理解其原理与应用场景。
|
3月前
|
Java 编译器
Java 17 Switch表达式:更简洁、更强大的流程控制
Java 17 Switch表达式:更简洁、更强大的流程控制
|
3月前
|
运维 监控 算法
基于 Java 滑动窗口算法的局域网内部监控软件流量异常检测技术研究
本文探讨了滑动窗口算法在局域网流量监控中的应用,分析其在实时性、资源控制和多维分析等方面的优势,并提出优化策略,结合Java编程实现高效流量异常检测。
140 0

热门文章

最新文章