1. 程式人生 > >JAVA解析字串中的加減乘除四則運算的實現

JAVA解析字串中的加減乘除四則運算的實現

package com.dwtedx.income.utility;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by dwtedx(qinyl)(http://dwtedx.com) on 16/9/2.
 * Company DD部落格
 * Description java字串加法運算
 */
public class ReportUtil {

    /**
     * 格式化數字
     * @param obj 數字物件
     * @param format 格式化字串
     * @return
     */
public static String formatNumber(Object obj, String format) { if (obj == null) return ""; String s = String.valueOf(obj); if (format == null || "".equals(format.trim())) { format = "#.00"; } try { if (obj instanceof Double
|| obj instanceof Float) { if (format.contains("%")) { NumberFormat numberFormat = NumberFormat.getPercentInstance(); s = numberFormat.format(obj); } else { DecimalFormat decimalFormat = new DecimalFormat(format
); s = decimalFormat.format(obj); } } else { NumberFormat numberFormat = NumberFormat.getInstance(); s = numberFormat.format(obj); } } catch (Exception e) { } return s; } /** * 計算字串四則運算表示式 * @param string * @return */ public static String computeString(String string) { String regexCheck = "[\(\)\d\ \-\*/\.]*";// 是否是合法的表示式 if (!Pattern.matches(regexCheck, string)) return string; Matcher matcher = null; String temp = ""; int index = -1; String regex = "\([\d\.\ \-\*/] \)";// 提取括號表示式 string = string.replaceAll("\s", "");// 去除空格 try { Pattern pattern = Pattern

相關推薦

JAVA解析字串乘除四則運算實現

package com.dwtedx.income.utility; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.regex.Matcher; import java.util.re

django 模板 乘除 求餘 四則運算

django模板只提供了加法的filter,沒有提供專門的乘法和除法運算; django提供了widthratio的tag用來計算比率,可以變相用於乘法和除法的計算。 加法 {{ value|add:5 }} note:value=5,則結果返回10 減法 {{ value|add:-8 }} no

Java位運算實現乘除四則運算

本文是繼《一文了解有趣的位運算》的第二篇文章. 我們知道,計算機最基本的操作單元是位元組(byte),一個位元組由8個位(bit)組成,一個位只能儲存一個0或1,其實也就是高低電平。無論多麼複雜的邏輯、龐大的資料、酷炫的介面,最終體現在計算機最底層都只是對0101的儲存和運算。因此,瞭解位運算有助於提升我

位操作實現乘除四則運算

tle 參與 nbsp pre 圖片 操作數 整數 spa 或操作 解決方案 需要熟練掌握一些常見的位操作實現,具體為: 1)常用的等式:-n=~(n-1)=~n+1 2)獲取整數n的二進制中最後一個1:n&(-n)或者n&~(n-1)如:n=010100,

c-1:位運算:實現整數的乘除四則運算

首先回憶計算機組成原理學過的內容,數字在機器ALU運算邏輯單元內部是以補碼形式進行運算的,因為補碼有兩個優勢:1、能做到符號位和數值部分一起運算,這樣無需單獨考慮符號。2、能把減法運算轉化為加法運算來處理。3、補碼的沒有正0和負0之分,所以表示範圍比原碼和反碼多1個。問題一: 位運算實現加法不管是十進位制加法

D-位運算-劍指Offer(Java版)47-不用乘除做加法

題目 寫一個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算子號。 位操作 與(&) 或(|) 非(~) 異或(^) 左移(<<) :num << 1,相當於num乘以2 右移(>>) :num

利用棧的資料結構特點完成乘除四則運算

// // main.cpp // 利用棧的資料結構特點完成表示式的運算 // // Created by 柯木超 on 2018/12/4. // Copyright © 2018 柯木超. All rights reserved. // #include <iostream&g

java之BigDecimal的乘除

在小數之間加減乘除的時候,由於二進位制不能精確表示小數,從而導致精度丟失。在實際開發中,這種情況是很糟糕的。為了解決這一情況,我們可以利用BgiDecimal。但是這中間還有些問題需要注意的。 1、加減乘 首先,我們來看一個例項

超長整數的乘除四則運算

超長整數四則運算概要除法加法減法乘法 前面寫了減法和加法,這裡做個彙總,寫一下四則運算的分別實現 概要 當參加運算的數字是超過long型長度的資料,以至於只能用string字串來儲存,這時候加減乘除的運算已經不能用了。 對於這種問題Java提供了一個BigIn

只用位運算來實現整數的乘除四則運算

    首先回憶計算機組成原理學過的內容,數字在機器ALU運算邏輯單元內部是以補碼形式進行運算的,因為補碼有兩個優勢: 1、能做到符號位和數值部分一起運算,這樣無需單獨考慮符號。 2、能把減法運算轉化

FPGA乘除運算的注意問題

FPGA中有關加減乘除運算的位寬問題:1:在進行加減乘除運算時一定要注意位寬,保證足夠大的位寬,防止資料溢位,如果溢位結果就會出現錯誤,尤其是加和乘運算,一定要計算好位寬(位寬的計算可以都取其最大值,看最大值計算後的位寬就是最大位寬,採用這個位寬資料就溢位不了)2:除法運算時

運籌學與最優化理論基礎——高精度乘除(C++實現)

概要 這是本學期運籌學和最優化理論課的第一次作業。導師要求是實現含分數的高精度加減乘除運算,不能含有浮點數,這樣會造成計算誤差。為了實現分數的高精度加減乘除運算,我們首先必須實現整數的高精度加減乘除運算,之後將分數運算轉化成分子和分母相關的高精度計算。所有程式碼

每日一練——大數乘除運算實現(網易筆試題)

前幾天做網易筆試題時最後一道題是設計一個大數類,實現加減運算,因為做這道題時只有5分鐘,結果我剛把類寫出來,考試時間就結束了。其實在去年12月我寫過一個RSA的加解密程式,其中就用到了大數的加減乘除運算(當然這只是RSA用到的一小部分),沒有把最後一題寫上去實在太可惜了(&

javadouble型資料的乘除

publicclass Arith {    privatestaticfinalint DEF_DIV_SCALE =10;        /**     * 兩個Double數相加     * @param v1     * @param v2     * @return Double     */pub

java實現分數各種運算(乘除,求餘,求冪,求兩個數的較大值,較小值)

package Rational; import java.util.StringTokenizer; /** * @author SunKun * 分數四則運算 */ public class Calculator { int numerator; // 分子 int denominator

javaBigdecimal比較大小和乘除

BigDecimal bignum1 = new BigDecimal("10");  BigDecimal bignum2 = new BigDecimal("5");  BigDecimal bignum3 = null;    //加法  bignum3 =  bignum1.add(bignum2);

Java最好使用BigDecimal類處理乘除運算

Java中,對於不需要任何準確計算精度的數字可以直接使用float或double運算,但是如果需要精確計算的結果,則必須使用類,而且使用類也可以進行大數的操作。ava.math.BigDecimal。BigDecimal一共有4個夠造方法,讓我先來看看其中的兩種用法:第一種:

轉:javaBigDecimal乘除基本用法

文章轉自:http://www.javacui.com/page/2 Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數進行精確的運算。雙精度浮點型變數double可以處理16位有效數。 在實際應用中,需要對更大或者更小的

用位運算實現四則運算乘除(用位運算求一個數的1/3) via Hackbuteer1

esp sub 沒有 正整數 過程 介紹 異或 sin 完成 轉自:http://blog.csdn.net/hackbuteer1/article/details/7390093 ^: 按位異或;&:按位與; | :按位或 計算機系統中,數值一律用補碼來表示:因為

java在處理基本資料型別乘除操作注意

1.int /int 得到的結果轉double 舉例: int a=1; int b=2; double d=a/b 上面結果通常認為是0.5 ,但結果是0.0;正確的是: int a=1; int b=2; double d=(double)a/b   2. do