当前位置:首页 » 编程语言 » 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 19:31:30 浏览:485
怎么查看支付宝的账号密码 发布:2025-02-07 19:26:48 浏览:15
惠普服务器查看ip指令 发布:2025-02-07 19:26:47 浏览:433
算法设计模式 发布:2025-02-07 19:15:52 浏览:743
服务器1u能连接几台电脑 发布:2025-02-07 18:50:02 浏览:152
立人编译 发布:2025-02-07 18:48:32 浏览:764
日产途达四驱的有哪些配置 发布:2025-02-07 18:42:02 浏览:831
服务器搭建镜像站 发布:2025-02-07 18:41:55 浏览:376
游戏上云成标配云服务器该怎么选 发布:2025-02-07 18:26:13 浏览:141
哪个安卓手机自带系统没有广告 发布:2025-02-07 18:22:36 浏览:724