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;
    }
目录
相关文章
|
1天前
|
存储 Java C语言
【Java探索之旅】数据类型与变量 浮点型,字符型,布尔型,字符串型
【Java探索之旅】数据类型与变量 浮点型,字符型,布尔型,字符串型
8 0
|
1天前
|
Java
JAVA刷题之字符串的一些个人思路
JAVA刷题之字符串的一些个人思路
|
4天前
|
Java 编译器 API
Java基础教程(17)-Java8中的lambda表达式和Stream、Optional
【4月更文挑战第17天】Lambda表达式是Java 8引入的函数式编程特性,允许函数作为参数或返回值。它有简洁的语法:`(parameters) -> expression 或 (parameters) ->{ statements; }`。FunctionalInterface注解用于标记单方法接口,可以用Lambda替换。
|
5天前
|
Java 测试技术 程序员
滚雪球学Java(21):Java正则表达式
【4月更文挑战第10天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
15 2
滚雪球学Java(21):Java正则表达式
|
5天前
|
缓存 安全 Java
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
6 0
|
6天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
6天前
|
Java 程序员 编译器
JavaSE&Java8 Lambda 表达式
JavaSE&Java8 Lambda 表达式
|
10天前
|
并行计算 Java 编译器
Java Lambda表达式简介
Java Lambda表达式简介
14 0
|
11天前
|
机器学习/深度学习 数据采集 算法
使用 Java 实现机器学习算法
【4月更文挑战第19天】Java在数据驱动时代为机器学习提供支持,具备丰富的数学和数据结构库,适用于实现线性回归、决策树、SVM和随机森林等算法。实现时注意数据预处理、模型选择、评估指标和可视化。利用Java的库和编程能力可构建高效模型,但需按问题需求选择合适技术和优化方法。
|
11天前
|
算法
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
22 1