- 首页 > it技术 > >
//created by Y.DanielLiang
public class Calculator {
public static void main(String[] args) {
// Check number of strings passed
if (args.length != 1) {
System.out.println(
"Usage: java Calculator \"operand1 operator operand2\"");
System.exit(1);
}// The result of the operation
int result = 0;
// The result of the operation
String s = insertBlanks(args[0]);
String[] tokens = s.split("\\s+");
// See Supplement III.H for regular expressions// Determine the operator
switch (tokens[1].charAt(0)) {
case '+': result = Integer.parseInt(tokens[0]) +
Integer.parseInt(tokens[2]);
break;
case '-': result = Integer.parseInt(tokens[0]) -
Integer.parseInt(tokens[2]);
break;
case '*': result = Integer.parseInt(tokens[0]) *
Integer.parseInt(tokens[2]);
break;
case '/': result = Integer.parseInt(tokens[0]) /
Integer.parseInt(tokens[2]);
}// Display result
System.out.println(tokens[0] + ' ' + tokens[1] + ' '
+ tokens[2] + " = " + result);
}public static String insertBlanks(String s) {
String result = "";
for (int i = 0;
i < s.length();
i++) {
if (s.charAt(i) == '+' || s.charAt(i) == '-' ||
s.charAt(i) == '*' || s.charAt(i) == '/')
result += " " + s.charAt(i) + " ";
else
result += s.charAt(i);
}
return result;
}
}
//忽略空格的简易四则运算器
import java.util.*;
import javax.xml.stream.events.Characters;
public class MyCalculator { public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter an expression.");
String s1 = input.next();
String[] tokens = new String[3];
for ( int i = 0;
i < tokens.length;
) {
for ( int j = 0;
j < s1.length() ;
j ++ ) {
if ( s1.charAt(j)>='0'&&s1.charAt(j)<='9')
tokens[i++] = s1.charAt(j)+"";
if ( s1.charAt(j)=='*'||s1.charAt(j)=='/'||s1.charAt(j)=='+'||s1.charAt(j)=='i')
tokens[i++] = s1.charAt(j)+"";
}
}if( isRightOrder(tokens)) {
System.out.print(tokens[0]+" "+ tokens[1]+" "+tokens[2]+ " "+"="+" "+getResult(tokens));
}
else if ( !isRightOrder(tokens)) {
System.out.println("Please enter again.");
System.exit(1);
}
} private static boolean isRightOrder(String[] tokens) {
for ( int i = 0;
i < tokens.length ;
i ++ ) {
if ( i % 2== 0 ) {
if (tokens[i].charAt(0)<='0'||tokens[i].charAt(0)>='9')
return false;
}
else {
if ( tokens[i].charAt(0)!='+'&&tokens[i].charAt(0)!='-'&&tokens[i].charAt(0)!='*'&&tokens[i].charAt(i)!='/')
return false;
}
}
return true;
} private static int getResult(String[] tokens) {
int num1 = Integer.parseInt(tokens[0]);
int num2 = Integer.parseInt(tokens[2]);
switch ( tokens[1]) {
case "+": return num1 + num2;
case "-": return num1 - num2;
case "*": return num1 * num2;
case "/": return num1/num2;
}
return -9999;
}}
推荐阅读