當前位置:首頁 » 編程語言 » java表達式計算

java表達式計算

發布時間: 2022-06-11 22:26:08

1. java怎樣把字元串表達式計算出來

可以使用 commons-jexl3 jar包


示例:

publicstaticvoidmain(String[]args){
StringexpressionString="1+2+3";

JexlEnginejexlEngine=newJexlBuilder().create();
JexlExpressionjexlExpression=jexlEngine.createExpression(expressionString);
Objectevaluate=jexlExpression.evaluate(null);
System.out.println(evaluate);
}

結果: 6


示例2:


來個復雜點的

publicstaticvoidmain(String[]args){
//StringexpressionString="1+2+3";

StringexpressionString="100*10-(200+300)";

JexlEnginejexlEngine=newJexlBuilder().create();
JexlExpressionjexlExpression=jexlEngine.createExpression(expressionString);
Objectevaluate=jexlExpression.evaluate(null);
System.out.println(evaluate);
}



結果: 500

2. 在Java中計算表達式a * 3 > 10 1 : 2的結果是

如果a*3大於10就返回冒號左邊的也就是1 如果不大於10就返回冒號右邊的2. 這種題推薦自己運行一遍!

3. 請問用Java編寫一個 數學表達式計算程序

System.out.println("\t" + n + "! = " + compute(n));//調用compute方法,傳入參數n
}

// 計算n!的方法
static long compute(int n) {

// 1!=1; 2!=2*1=2; 3!=3*2*1; 4!=4*3! ... n!=n*(n-1)!
// 遞歸: 方法本身含有對自己的調用
if (n == 1) {
return 1;
} else {
return n*compute(n-1);//20*compute(20-1)
}
}

4. 用java 正則表達式 計算一個字元串中某個子串的個數

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexTest {

public static void main(String args[]){
String str = "abcdfdfsabcdfdsf abc fdfdabcabc";

//1. 用這則表達式處理, 不過好像一點都不省事..
Pattern p = Pattern.compile("abc",Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(str);
int count = 0;
while(m.find()){
count ++;
}
System.out.println("ABC的個數 : " + count);

//2. 用普通方法來做,比較省事
String [] ary = ("," + str + ",").split("abc");
System.out.println("ABC的個數 : " + (ary.length - 1));
}
}

我覺得用split方法,以"abc"做分隔符將字串拆分成數組,這樣比較簡單.不過上面的代碼(第二種方法)只能判斷小寫"abc"的個數, 如果你還需要將"ABC"或者"aBc"或者"abC"這樣的字串都找出來, 只需要將第二種方法的代碼修改成下面這樣的就可以了:

String [] ary = ("," + str.toLowerCase() + ",").split("abc");
System.out.println("ABC的個數 : " + (ary.length - 1));

5. JAVA中如何計算字元串表達式的結果,如:"2+8/2*6-12"。高手們過來看看。

在回答你的問題之前 做兩個說明!
1. 你的輸入要合法(不含字母,運算符後有且必須有數字,中間不能有空格)
import java.util.*;
import java.util.regex.*;
import java.lang.*;
public class CountExpression{
static String[] operater =new String[20];
static String[] number = new String[20];
public int countExpression(String str){

Stack countStack1 = new Stack();
Stack countStack2 = new Stack();
int result =0;
number = str.split("\\/|\\*|\\+|\\-");
operater= str.split("\\d+");
for(int i = 0; i<number.length;i++){
countStack1.push(number[i]);
if(i!=number.length-1){
countStack1.push(operater[i+1]);

}
}
while(!countStack1.isEmpty())
countStack2.push(countStack1.pop());
String op;
while(!countStack2.isEmpty()){
result=0;
op = countStack2.pop().toString();
if(op.equals("*")){
result=Integer.parseInt(countStack1.pop().toString())*Integer.parseInt(countStack2.pop().toString());
countStack1.push(result);

continue;
}
if(op.equals("/")){
result=Integer.parseInt(countStack1.pop().toString())/Integer.parseInt(countStack2.pop().toString());
countStack1.push(result);
continue;
}
countStack1.push(op);

}
while(!countStack1.isEmpty())
countStack2.push(countStack1.pop());

while(!countStack2.isEmpty()){
result=0;
op = countStack2.pop().toString();
if(op.equals("+")){
result=Integer.parseInt(countStack1.pop().toString())+Integer.parseInt(countStack2.pop().toString());
countStack1.push(result);
continue;
}
if(op.equals("-")){
result=Integer.parseInt(countStack1.pop().toString())-Integer.parseInt(countStack2.pop().toString());
countStack1.push(result);
continue;
}
countStack1.push(op);

}
return result;
//System.out.println(result);

}
public static void main(String[] args){
int num;
CountExpression ct= new CountExpression();
num = ct.countExpression("222+2*6*7-112*2+5*2-6*7");
System.out.println(num);
}

}
交給你個任務! 輸入檢查:像 2+/2*5+5-6, 2a+2/4+7 2*4-7/ 能提示輸入錯誤
如果中間有空冊刪除
(提示用正則)
另外增加對括弧的處理像 : 2*(2+3)/2

6. java三元表達式怎麼算

舉個簡單例子吧。

int a=1;int b=2;int c= a>b?1:0,結果c 為0。a>b 為條件,後面當條件為true時返回":"前面的結果,反之返回":"後面的結果。

7. JAVA語言計算表達式的結果

沒現成的程序,話說網路的積分沒啥用,沒人願意為20分去給你寫程序的。。
簡單提示下吧
這個是
編譯原理
的內容,兩個簡單的方法
1、
遞推
下降分析器,就是LL分析
2、
算符
優先分析,就是LR分析的簡化版
找代碼的話,去看嚴蔚敏數據結構。。。上面有。。。是基於算符優先的,優先表都給出來了。。。
用LL的話,去找javacc吧,裡面自帶的例子就是你要的。。。

8. 怎麼在JAVA中運算表達式

Java表達式是變數、常量、運算符、方法調用的序列,它執行指定的計算並返回某個確定的值。

其中,運算符按操作數的數目:有一元運算符(++、--)、二元運算符(+、-、>等等)和三元運算符(?:),它們分別對應一到三個操作數。

表達式一般按運算符來分:

算術表達式(float x=8.3f、i++)、

關系表達式(3>7、3<7)、

布爾邏輯表達式((5>4)&&true、!false)、

位運算表達式(a=34^3)、

賦值表達式、

條件表達式(b=100>89?a=ture:a=false)

以及復合表達式。

還有一種叫「表達式語句」,就是在表達式後加上分號作為語句來使用。(int i=123;)

9. 在java編程中表達式(11+3*8)/4%3的值是多少

java編程中表達式(11+3*8)/4%3的值為2。

計算的過程:

由於括弧的優先順序最高所以先進行括弧里的運算,括弧內乘法優先,所以3*8=24,然後加法得出24+11=35。然後35/4=8,然後進行對3取余的操作8%3=2,所以說最後得出整個表達式的結果為2。

(9)java表達式計算擴展閱讀:

工作原理:

由四方面組成:Java編程語言、Java類文件格式、Java虛擬機、Java應用程序介面。

java語言特點:

簡單性,Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特徵去掉了,這些特徵是一般程序員很少使用的。

面向對象Java是一個面向對象的語言。

分布性,Java設計成支持在網路上應用,它是分布式語言。

編譯和解釋性,Java編譯程序生成位元組碼(byte-code),而不是通常的機器碼。程序開發。這是一個與傳統的、耗時的「編譯、鏈接和測試」形成鮮明對比的精巧的開發過程。

穩健性,Java原來是用作編寫消費類家用電子產品軟體的語言,所以它是被設計成寫高可靠和穩健軟體的。Java消除了某些編程錯誤,使得用它寫可靠軟體相當容易。

安全性Java的存儲分配模型是它防禦惡意代碼的主要方法之一。

可移植性Java使得語言聲明不依賴於實現的方面。

高性能,Java是一種先編譯後解釋的語言,所以它不如全編譯性語言快。

多線程性,Java是多線程語言,它提供支持多線程的執行(也稱為輕便過程),能處理不同任務,使具有線索的程序設計很容易。

動態性Java語言設計成適應於變化的環境,它是一個動態的語言。

運算符優先順序:+加、-減優先順序小於*乘、/除、%取余數。結合的方向為自左向右。

參考資料來源:網路-Java

熱點內容
電腦開機後一直在配置更新怎麼進入系統 發布:2025-02-07 18:17:43 瀏覽:10
新浪上傳視頻在哪 發布:2025-02-07 18:17:38 瀏覽:556
外匯點差演算法 發布:2025-02-07 18:16:41 瀏覽:78
我的世界各種伺服器核心的區別 發布:2025-02-07 18:15:52 瀏覽:677
雲伺服器客戶怎麼轉 發布:2025-02-07 18:13:19 瀏覽:205
什麼漫畫軟體可以緩存 發布:2025-02-07 17:56:21 瀏覽:268
安卓如何取消手機搜索 發布:2025-02-07 17:46:04 瀏覽:217
ontoucheventandroid 發布:2025-02-07 17:45:50 瀏覽:869
愛思助手如何看配置 發布:2025-02-07 17:32:27 瀏覽:175
自己的電腦怎麼搭建手游伺服器端 發布:2025-02-07 17:21:44 瀏覽:47