当前位置:首页>开发>正文

java里的取模 在JAVA中通过字符串截取算1 2#3,求大神指点。

2023-05-23 23:46:32 互联网 未知 开发

 java里的取模 在JAVA中通过字符串截取算1 2#3,求大神指点。

java里的取模

%是取模运算,结果是余数,和/(除)可以对比。java中int做除运算会把小数部分直接去掉。
7/5=1 (余2) 7%5=12345/10=1234 (余5) 12345=5

在JAVA中通过字符串截取算1 2#3,求大神指点。

public class TestMath {

public static void main(String[] args) {
System.out.println(nomCompu(formatExp("1 2*3")))
}
static int value(String rex){
// 解析表达式是否包含{} [] () one 一级运算模块   two 二级运算模块 three 三级运算模块  
String one = rex.contains("(")?rex.substring(rex.indexOf("("), rex.indexOf(")") 1):null
String two = rex.contains("[")?rex.substring(rex.indexOf("["), rex.indexOf("]") 1):null
String three = rex.contains("{")?rex.substring(rex.indexOf("{"), rex.indexOf("}") 1):null

        if(one != null){String li = one one = formatExp(one)one = nomCompu(one) ""two = two.replace(li,one)}
        if(two != null){String li = two two = formatExp(two)two = nomCompu(two) ""three = three.replace(li,two)}
        if(three != null){three = formatExp(three)three = nomCompu(three) ""}

return 0
}
static String  formatExp(String exp){

// 格式化优先运算符 ^  乘方  %求模
while(exp.contains("%")){
String tax = exp.substring(exp.indexOf("%")-1, exp.indexOf("%") 2)
exp = exp.replace(tax, Integer.parseInt(tax.substring(0, 1)) * Integer.parseInt(tax.substring(2,3)) "")
}
while( exp.contains("^")){
String tax = exp.substring(exp.indexOf("^")-1, exp.indexOf("^") 2)
exp = exp.replace(tax, (Integer.parseInt(tax.substring(0, 1)) ^ Integer.parseInt(tax.substring(2,3))) "")
}
return exp
}
static int nomCompu(String exp){
// 正常计算 乘 除 加 减
while(exp.contains("*")){
String tax = exp.substring(exp.indexOf("*")-1, exp.indexOf("*") 2)
exp = exp.replace(tax, Integer.parseInt(tax.substring(0, 1)) * Integer.parseInt(tax.substring(2,3)) "")
}
while(exp.contains("/")){
String tax = exp.substring(exp.indexOf("/")-1, exp.indexOf("/") 2)
exp = exp.replace(tax, Integer.parseInt(tax.substring(0, 1)) / Integer.parseInt(tax.substring(2,3)) "")
}
while(exp.contains(" ")){
String tax = exp.substring(exp.indexOf(" ")-1, exp.indexOf(" ") 2)
exp = exp.replace(tax, Integer.parseInt(tax.substring(0, 1))   Integer.parseInt(tax.substring(2,3)) "")
}
while(exp.contains("-")){
String tax = exp.substring(exp.indexOf("-")-1, exp.indexOf("-") 2)
exp = exp.replace(tax, Integer.parseInt(tax.substring(0, 1)) - Integer.parseInt(tax.substring(2,3)) "")
}
return Integer.parseInt(exp)
}
}带括号的情况 没写完比较复杂,简单的加减乘除乘方求模还是可以的

最新文章