英伦对决bt磁力链接好不好看?(要用自己的话回答,不要网上复制的,并且要说出理由。)

本帖子已过去太久远了,不再提供回复功能。计算机(44)
兴趣爱好(14)
程序源代码(13)
支持含有字母的复杂表达式、不含字母的纯数学表达式
先上测试程序,后面有源码:
1.纯数字的算式测试
public static void main(String[] args) throws Exception {
String express = "(100-5+45)*88.8/(5/94+584)";
Double result = MathFormulaUtil.getNumberResult(express);
System.out.println(result);
2.带有字母的公式测试
public static void main(String[] args) throws Exception {
String express = "(((x+y)/(z+x)*q)+100-99)*565";
double[] param = new double[]{45,89,200,45,66};
Double result =MathFormulaUtil.getExpressionResult(express, param);
System.out.println(result);
下面是程序源码:
package com.usi.jrwl.
import java.util.ArrayL
import java.util.A
import java.util.L
import java.util.UUID;
import fr.expression4j.basic.MathematicalE
import fr.expression4j.core.E
import fr.expression4j.core.P
import fr.expression4j.factory.ExpressionF
import fr.expression4j.factory.NumberF
* 输入数学公式即可计算结果
public class MathFormulaUtil {
* 根据用户输入的数学算式返回表达式对象
* expressionString 用户输入 数学算式
* params 按照变量的位置为变量输入[对应]的值
* Exception
* note:在英文输入法的状态下输入
public static Double getExpressionResult(String expressionString,double...params) throws Exception{
expressionString.trim().replace(" ","");
String[] expressArgs = expressionString.split("");
List&String& filters = Arrays.asList("(",")","+","-","*","/","0","1","2","3","4","5","6","7","8","9");
List&String& vars = new ArrayList&String&();
int count = -1;
for(String arg : expressArgs){
if(!filters.contains(arg)){
if(!arg.equals("")){
if(vars.contains(arg)){
String argRandom = arg+getRandom();
String oldChar = expressionString.substring(count-1);
String repStrLater = oldChar.replace(oldChar, argRandom);
expressionString = expressionString.substring(0,count-1)+repStrLater+expressionString.substring(count);
vars.add(argRandom);
count = count +32;
vars.add(arg);
StringBuilder expressionHead = new StringBuilder("f(");
for(String v : vars){
expressionHead.append(v+",");
expressionHead.setLength(expressionHead.length()-1);
expressionHead.append(")=");
String expressionAll = expressionHead + expressionS
Expression expression = ExpressionFactory.createExpression(expressionAll);
List&MathematicalElement& mes = new ArrayList&MathematicalElement&();
for (int i = 0; i & params. i++) {
mes.add(NumberFactory.createReal(params[i]));
Parameters parameters = ExpressionFactory.createParameters();
for(int i=0;i&vars.size();i++){
parameters.addParameter(vars.get(i),mes.get(i));
return expression.evaluate(parameters).getRealValue();
* 支持纯数字计算
* expressionString
用户输入 数学算式
* 计算结果
* Exception 异常
public static Double getNumberResult(String expressionString) throws Exception{
Expression expression = ExpressionFactory.createExpression("f()="+expressionString);
return expression.evaluate(null).getRealValue();
* 生成随机数
static String getRandom(){
String s = UUID.randomUUID().toString();
return s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);
jar包下载地址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:30973次
排名:千里之外
原创:90篇
(1)(7)(8)(4)(1)(1)(5)(4)(1)(1)(62)(1)Posts - 11,
Articles - 0,
Comments - 0
11:42 by 我在雨中等你, ... 阅读,
import java.util.S//控制器输入需要用到Scanner
public class Factorial {
public static void main(String[] args) {
System.out.println("请输入一个正数:");//在控制台提示输入
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
/*当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,
直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。
如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。*/
int n =Integer.parseInt(str);//将string类型转换成int类型
long result =1;
if (n&0||n&17) {
System.out.println("范围必须是0-17,大于17会超过long范围");
}else if (n==0) {
System.out.println("0的阶乘等于1");
for (int i = i &0; i--) {
result*=i;
System.out.println(n+"的阶乘是:"+result);
请输入一个正数:
10的阶乘是:3628800Java(28)
Algorithm(14)
计算输入时间的下一秒时间,输入格式如: 12:12:12
import java.io.*;
import java.text.SimpleDateF
import java.util.*;
import java.util.logging.SimpleF
public class Main
public static void main(String args[])
SimpleDateFormat format = new SimpleDateFormat(&yyyy/MM/dd HH:mm:ss&);
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
System.out.println(date2TimeStamp(input,&yyyy/MM/dd HH:mm:ss&));
long res = date2TimeStamp(input,&yyyy/MM/dd HH:mm:ss&) + 1000;
System.out.println(res);
System.out.println(format.format(res));
public static long date2TimeStamp(String date_str,String format){
SimpleDateFormat sdf = new SimpleDateFormat(format);
long millionSeconds = sdf.parse(date_str).getTime();
return millionS
} catch (Exception e) {
e.printStackTrace();
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
Mail:yongcai@my. Phone:
访问:119187次
积分:2922
积分:2922
排名:第10577名
原创:168篇
转载:16篇
评论:22条
(3)(2)(15)(4)(4)(1)(3)(19)(6)(3)(3)(2)(1)(5)(8)(1)(14)(4)(8)(9)(4)(4)(9)(39)(6)(10)(1)(1)

我要回帖

更多关于 英伦对决好看吗 的文章

 

随机推荐