A. 用JAVA編寫一個計算器或者搖號系統
public class myselfjisuanqi {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String input = sc.next();
test(input);
}
public static void test(String input) {
int num = 0;
List<String> list = new ArrayList<String>();
char[] charArray = input.toCharArray();
for (int i = 0; i < charArray.length; i++) {
if (charArray[i] >= '0' && charArray[i] <= '9') {
num++;
if (i == charArray.length - 1) {
StringBuffer sb = new StringBuffer();
for (int j = i - num + 1; j <= i; j++) {
sb.append(charArray[j]);
}
list.add(sb.toString());
}
} else {
if (num == 0) {
System.out.println("您輸入有誤,已退出計算!");
break;
} else {
StringBuffer sb = new StringBuffer();
for (int j = i - num; j < i; j++) {
sb.append(charArray[j]);
}
list.add(sb.toString());
list.add(String.valueOf(charArray[i]));
num = 0;
}
}
}
result(list);
}
public static void result(List<String> list) {
int resultX = 0;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("*")) {
resultX =
Integer.parseInt(list.get(i-1)) * Integer.parseInt(list.get(i+1));
list.remove(i);
list.remove(i);
list.set(i - 1, String.valueOf(resultX));
i = 0;
continue;
}
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("/")) {
resultX =
Integer.parseInt(list.get(i-1)) / Integer.parseInt(list.get(i+1));
list.remove(i);
list.remove(i);
list.set(i - 1, String.valueOf(resultX));
i = 0;
continue;
}
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("+")) {
resultX =
Integer.parseInt(list.get(i-1)) + Integer.parseInt(list.get(i+1));
list.remove(i);
list.remove(i);
list.set(i - 1, String.valueOf(resultX));
i = 0;
continue;
}
}
for (int i = 0; i < list.size(); i++) {
if (list.get(i).equals("-")) {
resultX =
Integer.parseInt(list.get(i-1)) - Integer.parseInt(list.get(i+1));
list.remove(i);
list.remove(i);
list.set(i - 1, String.valueOf(resultX));
i = 0;
continue;
}
}
System.out.println(list.get(0));
}
}
之前沒事時候寫過的計算器,控制台輸入輸出,沒有帶括弧的功能,加減乘除都OK