欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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 方法來進行替換。

替換方式示例代碼如下:

	@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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 談談Hashmap的容量為什么是2的冪次問題

    談談Hashmap的容量為什么是2的冪次問題

    這篇文章主要介紹了談談Hashmap的容量為什么是2的冪次問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Nacos設置為windows自啟動服務的步驟詳解

    Nacos設置為windows自啟動服務的步驟詳解

    這篇文章給大家介紹了Nacos設置為windows自啟動服務的操作步驟,文中通過代碼示例和圖文結(jié)合講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • Java使用html2image將html生成縮略圖圖片的實現(xiàn)示例

    Java使用html2image將html生成縮略圖圖片的實現(xiàn)示例

    本文主要介紹了Java使用html2image將html生成縮略圖圖片的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • 關于eclipse安裝spring插件報錯An error occurred while collecting items to be installed...解決方案

    關于eclipse安裝spring插件報錯An error occurred while collecting item

    這篇文章主要介紹了關于eclipse安裝spring插件報錯An error occurred while collecting items to be installed...解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Java中dubbo+zookeeper微服務架構(gòu)簡介

    Java中dubbo+zookeeper微服務架構(gòu)簡介

    Apache Dubbo是一款高性能的 Java RPC 框架,這篇文章主要介紹了Java中dubbo+zookeeper微服務架構(gòu),需要的朋友可以參考下
    2021-09-09
  • SpringBoot實現(xiàn)簡易支付寶網(wǎng)頁支付功能

    SpringBoot實現(xiàn)簡易支付寶網(wǎng)頁支付功能

    小編最近實現(xiàn)一個功能基于springboot程序的支付寶支付demo,非常不錯適合初學者入門學習使用,今天把SpringBoot實現(xiàn)簡易支付寶網(wǎng)頁支付功能的示例代碼分享給大家,感興趣的朋友參考下吧
    2021-10-10
  • 基于SpringBoot+Avue實現(xiàn)短信通知功能

    基于SpringBoot+Avue實現(xiàn)短信通知功能

    Avue是基于vue和element-ui的快速開發(fā)框架 ,它的核心是數(shù)據(jù)驅(qū)動UI的思想,讓我們從繁瑣的crud開發(fā)中解脫出來,本文將給大家介紹一下使用SpringBoot+Avue實現(xiàn)短信通知功能,文中有詳細的代碼示例,需要的朋友可以參考下
    2023-09-09
  • 詳解Java 本地接口 JNI 使用方法

    詳解Java 本地接口 JNI 使用方法

    這篇文章主要介紹了詳解Java 本地接口 JNI 使用方法的相關資料,希望通過本文大家能徹底使用JNI編程,需要的朋友可以參考下
    2017-09-09
  • JavaFX Metro UI 和 開發(fā)庫使用簡介

    JavaFX Metro UI 和 開發(fā)庫使用簡介

    這篇文章主要介紹了JavaFX Metro UI 和 開發(fā)庫解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Java設計模式之代理模式與@Async異步注解失效的解決

    Java設計模式之代理模式與@Async異步注解失效的解決

    代理模式是Java常見的設計模式之一。所謂代理模式是指客戶端并不直接調(diào)用實際的對象,而是通過調(diào)用代理,來間接的調(diào)用實際的對象
    2022-07-07

最新評論