帮忙写个计算器类,在线等 只是纯粹的用java写的,不要求swing的,只在console显示就好了! 实现加减乘除四个方法 输入的参数可以为 1两个字符串。2两个float。3两个long。4两个int。(关于重载) 要求返回的类型为字符串 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package com.synnex.test;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void add(String str1, String str2) { System.out.println("P>计算结果:\nP>\t" + str1 + str2); } public static void add(int int1, int int2) { long result = int1 + int2; System.out.println("P>计算结果:\nP>\t" + result); } public static void add(float int1, float int2) { double result = int1 + int2; System.out.println("P>计算结果:\nP>\t" + result); } public static void add(double int1, double int2) { double result = int1 + int2; System.out.println("P>计算结果:\nP>\t" + result); } public static void main(String[] args) throws Exception { boolean isExit = false; Pattern pattern; Matcher matcher; String group1; String group2; boolean b; while (!isExit) { System.out.print("P>"); BufferedReader br = new BufferedReader(new InputStreamReader( System.in)); StringBuffer sb = new StringBuffer(); sb.append(br.readLine()); if (sb.toString().trim().equalsIgnoreCase("exit")) { System.out.println("P>程序退出......"); isExit = true; } else { try { pattern = Pattern.compile("(.+)\\+(.+)"); matcher = pattern.matcher(sb.toString()); b = matcher.matches(); // b = Pattern.matches("(\".+\")\\c+\".+\"",sb.toString()); if (b) { // 加法 group1 = matcher.group(1); group2 = matcher.group(2); if (Pattern.matches("\\d+f$", group1) && Pattern.matches("\\d+f$", group2)) { add(Float.parseFloat(group1), Float .parseFloat(group2)); } else if (Pattern.matches("\\d+d$", group1) && Pattern.matches("\\d+d$", group2)) { add(Double.parseDouble(group1), Double .parseDouble(group2)); } else if (Pattern.matches("\\d+$", group1) && Pattern.matches("\\d+$", group2)) { add(Integer.parseInt(group1), Integer .parseInt(group2)); } else { add(group1, group2); } } b = Pattern.matches("\".+\"\\c*\".+\"", sb.toString()); if (b) { // 乘法 } } catch (Exception e) { System.out.println("输入数据解析错误!请重新输入"); } } } }}大家都没有什么时间! 我给你写了加法部分的 还有些不完善! 你自己看能不能把其他的 写出来! google一下.一大把.以前写过一个不太成熟的.不过没在单位电脑里. 乘法的 正则表达式 你改下 我忘记改了乘"(\d+)\\*(\d+)"减"(\d+)\\-(\d+)"除"(\d+)/(\d+)" 我搜索过,没有console的,都是swing的,谢谢各位。剩下的我自己搞定 怎么将页面上的数据转换到数据库中 求助:贪吃蛇的两段代码问题 JasperReport列分页 java中的多线程 在cmd里面打javac HelloWorld.java 出错 此题怪哉 怎么发送一个HTTP HEAD请求? 如何截取byte数组的一部分,复制到另一个同类型的数组中 怎样用JBuilder 7编写用JDBC (for MS SQL 2000 )访问MS sql 2000 Server 的应用程序 请解释一下:System.out.println(data) 帮忙写个校验密码的类,谢谢,在线等 字节流的问题!
package com.synnex.test;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test { public static void add(String str1, String str2) {
System.out.println("P>计算结果:\nP>\t" + str1 + str2);
} public static void add(int int1, int int2) {
long result = int1 + int2;
System.out.println("P>计算结果:\nP>\t" + result);
} public static void add(float int1, float int2) {
double result = int1 + int2;
System.out.println("P>计算结果:\nP>\t" + result);
} public static void add(double int1, double int2) {
double result = int1 + int2;
System.out.println("P>计算结果:\nP>\t" + result);
} public static void main(String[] args) throws Exception { boolean isExit = false; Pattern pattern;
Matcher matcher;
String group1;
String group2;
boolean b;
while (!isExit) {
System.out.print("P>");
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
StringBuffer sb = new StringBuffer();
sb.append(br.readLine());
if (sb.toString().trim().equalsIgnoreCase("exit")) {
System.out.println("P>程序退出......");
isExit = true;
} else {
try {
pattern = Pattern.compile("(.+)\\+(.+)");
matcher = pattern.matcher(sb.toString());
b = matcher.matches();
// b = Pattern.matches("(\".+\")\\c+\".+\"",sb.toString());
if (b) {
// 加法
group1 = matcher.group(1);
group2 = matcher.group(2);
if (Pattern.matches("\\d+f$", group1)
&& Pattern.matches("\\d+f$", group2)) {
add(Float.parseFloat(group1), Float
.parseFloat(group2)); } else if (Pattern.matches("\\d+d$", group1)
&& Pattern.matches("\\d+d$", group2)) {
add(Double.parseDouble(group1), Double
.parseDouble(group2)); } else if (Pattern.matches("\\d+$", group1)
&& Pattern.matches("\\d+$", group2)) {
add(Integer.parseInt(group1), Integer
.parseInt(group2)); } else {
add(group1, group2);
}
}
b = Pattern.matches("\".+\"\\c*\".+\"", sb.toString());
if (b) {
// 乘法 }
} catch (Exception e) {
System.out.println("输入数据解析错误!请重新输入");
}
}
} }
}大家都没有什么时间! 我给你写了加法部分的 还有些不完善! 你自己看能不能把其他的 写出来!
"(\d+)\\*(\d+)"减
"(\d+)\\-(\d+)"除
"(\d+)/(\d+)"