最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java計算字符串公式的方式解讀

 更新時間:2022年12月12日 09:18:09   作者:南獨酌酒nvn  
這篇文章主要介紹了Java計算字符串公式的方式解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

如何計算字符串公式

解決方案一

使用 commons-jexl3 jar 包

可以使用 commons-jexl3 jar包,此 jar 包提供了一些方法用于計算字符串中的公式。

maven 依賴如下:

<dependency>
?? ?<groupId>org.apache.commons</groupId>
?? ?<artifactId>commons-jexl3</artifactId>
?? ?<version>3.1</version>
</dependency>

示例代碼:

	@Test
    public void test03() {
        String expressionString = "27.0/10";
        JexlEngine jexlEngine = new JexlBuilder().create();
        JexlExpression jexlExpression = jexlEngine.createExpression(expressionString);
        Object evaluate = jexlExpression.evaluate(null);
        System.out.println(evaluate);
    }

運算結(jié)果如下:防止精度丟失,計算的公式中最起碼要存在一個精度數(shù)值,如果可以盡量使用字符串的替換方法 replaceAll 替換公式中的某一個數(shù)值為精度值,這樣則不會出現(xiàn)精度丟失問題。

解決方案二

使用 JDK 底層調(diào)用 javaScript 的運算公式 (推薦使用)

JDK 自帶的類可以實現(xiàn)調(diào)用 JS 的功能,可以實現(xiàn)執(zhí)行字符串中的運算公式的功能,示例代碼如下:

	@Test
    public void test04() throws ScriptException {
        ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
        String strs = "27/10";
        System.out.println(jse.eval(strs));
    }

結(jié)果如下:使用這種方案可以直接避免精度丟失,如果公式中存在變量作為運算的元素,可以使用字符串的 replaceAll 方法來進(jìn)行替換。

替換方式示例代碼如下:

	@Test
    public void test04() throws ScriptException {
        ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
        String strs = "1+b";
        strs = strs.replace("b", "9");
        System.out.println(jse.eval(strs));
    }

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java多線程編程制作電子時鐘

    java多線程編程制作電子時鐘

    本文給大家匯總了幾個使用java多線程編程實現(xiàn)的電子時鐘的代碼,思路非常的巧妙,也都很實用,有需要的小伙伴可以參考下。
    2015-11-11
  • java代碼實現(xiàn)MD5加密及驗證過程詳解

    java代碼實現(xiàn)MD5加密及驗證過程詳解

    這篇文章主要介紹了java代碼實現(xiàn)MD5加密及驗證過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 解析Runtime中shutdown hook的使用詳解

    解析Runtime中shutdown hook的使用詳解

    本篇文章是對解析Runtime中shutdown hook的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解springboot采用多數(shù)據(jù)源對JdbcTemplate配置的方法

    詳解springboot采用多數(shù)據(jù)源對JdbcTemplate配置的方法

    在本篇文章中我們給大家詳細(xì)分享了springboot采用多數(shù)據(jù)源對JdbcTemplate配置的方法,有需要的朋友們可以學(xué)習(xí)參考下。
    2018-10-10
  • java8 toMap問題(key重復(fù)如何解決)

    java8 toMap問題(key重復(fù)如何解決)

    這篇文章主要介紹了java8 toMap問題(key重復(fù)如何解決),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 基于Java將Excel科學(xué)計數(shù)法解析成數(shù)字

    基于Java將Excel科學(xué)計數(shù)法解析成數(shù)字

    這篇文章主要介紹了基于Java將Excel科學(xué)計數(shù)法解析成數(shù)字,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Java基礎(chǔ)教程之final關(guān)鍵字淺析

    Java基礎(chǔ)教程之final關(guān)鍵字淺析

    這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)教程之final關(guān)鍵字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 微信小程序后端Java接口開發(fā)的詳細(xì)步驟

    微信小程序后端Java接口開發(fā)的詳細(xì)步驟

    現(xiàn)在微信小程序越來越火了,相信不少人都通過各種途徑學(xué)習(xí)過微信小程序或者嘗試開發(fā),本文就介紹了微信小程序后端Java接口開發(fā)的詳細(xì)步驟,感興趣的同學(xué)可以學(xué)習(xí)一下
    2021-11-11
  • Java框架搭建之Maven、Mybatis、Spring MVC整合搭建(圖文)

    Java框架搭建之Maven、Mybatis、Spring MVC整合搭建(圖文)

    這篇文章主要介紹了Java框架搭建之Maven、Mybatis、Spring MVC整合搭建(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解FileInputStream讀取文件數(shù)據(jù)的兩種方式

    詳解FileInputStream讀取文件數(shù)據(jù)的兩種方式

    這篇文章主要介紹了詳解FileInputStream讀取文件數(shù)據(jù)的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評論

海宁市| 万宁市| 尉犁县| 普兰店市| 建平县| 南平市| 广州市| 阳曲县| 山西省| 自治县| 灵石县| 丰城市| 广州市| 怀仁县| 南城县| 睢宁县| 北辰区| 张家界市| 南宁市| 汉中市| 亳州市| 沈阳市| 泾川县| 大足县| 宁蒗| 深泽县| 隆林| 通江县| 双峰县| 灵台县| 禄丰县| 温州市| 沾化县| 长寿区| 萨迦县| 喀喇| 青河县| 廊坊市| 溆浦县| 大姚县| 五家渠市|