[java]输入一个算术表达式输出结果
动手有益。
输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形。
例如: 输入:3+8×2/9-2
输出:2
/**
* input a calculate string, calcuate the value
* the number between 0-9
* round the middle vlaue to int
* */
public static void main(String[] args) { //8*6+2-6/3*6+2
String cal;//=new Scanner(System.in).nextLine();
cal="8*6+2-6/3*6+2";
String[] car=new String[cal.length()];
for (int i = 0; i < car.length; i++) {
car[i]=""+cal.charAt(i);
} System.err.println(car); //do * and /
for (int i = 0; i < car.length; i++) {
if(car[i].equals("*"))
{
car[i+1]= ""+(Integer.parseInt(car[i-1]) * Integer.parseInt(car[i+1]));
car[i-1]="";
car[i]=""; }else if(car[i].equals("/"))
{
car[i+1]= ""+(Integer)(Integer.parseInt(car[i-1]) / Integer.parseInt(car[i+1]));
car[i-1]="";
car[i]="";
}
else {
continue;
}
} //do + and -
int index=0;
for (int i = 0; i < car.length; i++) {
index=i;
if(car[i].equals("+"))
{
while(car[++index].equals("")){}
car[index]= ""+(Integer.parseInt(car[i-1]) + Integer.parseInt(car[index]));
car[i-1]="";
car[i]=""; }else if(car[i].equals("-"))
{
while(car[++index].equals("")){}
car[index]= ""+(Integer.parseInt(car[i-1]) - Integer.parseInt(car[index]));
car[i-1]="";
car[i]="";
}
else {
continue;
}
} System.err.println(cal+" = "+car[car.length-1]); }
[java]输入一个算术表达式输出结果的更多相关文章
- java输入一个字符串,输出该字符串的所有的排序
public class Sort { public static void arrangeSequence(char[] strArr,int i){ char temp; ArrayList< ...
- Java基础周测题,输入一个整数,输出所有能整除该整数的结果:
需求说明: 输入一个整数,输出所有能整除该整数的结果: 实现代码: package demo; import java.util.Scanner; public class test1 { publi ...
- 算法:输入一个链表,输出该链表中倒数第k个结点。
算法:输入一个链表,输出该链表中倒数第k个结点.<剑指offer> 思路加到注释里面了: 1:两个if判断是否返回值为空,首个为空,没有第k个值: 2:for循环找到倒数第k个值,返回为a ...
- 编写一个C语言函数,要求输入一个url,输出该url是首页、目录页或者其他url
编写一个C语言函数,要求输入一个url,输出该url是首页.目录页或者其他url 首页.目录页或者其他url 如下形式叫做首页: militia.info/ www.apcnc.com.cn/ htt ...
- 【剑指offer】输入一个链表,输出该链表中倒数第k个结点。
一.题目: 输入一个链表,输出该链表中倒数第k个结点. 二.思路: 用两个指针p1和p2,p2先跑k步,然后p1和p2同时跑,p2跑到头p1所在的位置就是倒数第k个节点.很简单吧?简单你也想不到,想到 ...
- 剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)
1. 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 2. 思路和方法 使用移位(<<)和 “| & !”操作来实现.1的二进制是:前面都是0,最后一位 ...
- 剑指offer14:输入一个链表,输出该链表中倒数第k个结点。
1. 题目描述 输入一个链表,输出该链表中倒数第k个结点. 2. 思路和方法 可以用两个指针,一个指针遍历到第k个结点的时候,第二个指针再走到第一个节点,然后两个指针的距离始终保持k-1.这样,当第一 ...
- 剑指Offer-14:输入一个链表,输出该链表中倒数第k个结点。
题目描述: 输入一个链表,输出该链表中倒数第k个结点.例如有一个链表有六个节点1,2,3,4,5,6.则它的倒数第二个节点为5 节点定义如下: public class ListNode { int ...
- 用java实现编译器-算术表达式及其语法解析器的实现
大家在参考本节时,请先阅读以下博文,进行预热: http://blog.csdn.net/tyler_download/article/details/50708807 本节代码下载地址: http: ...
随机推荐
- css中怎么设置透明度的问题
小伙伴们是不是在找怎么样去设置页面的透明度的方法呢...别找了,我这儿就有,而且肯定够用了. 我自己会用到的就有两种,可以和大家分享一下. 1.用opcity的方法去设置透明度.代码如下: .div ...
- Angular概念纵览
Conceptual Overview Template(模板): HTML with additional markup (就是增加了新的标记的HTML) Directive(指令): extend ...
- !important
当你需要确保某元素具有指定的 CSS 时,你可以使用!important. 举例如下: color: pink !important;
- low到一定程度了
- HDU 1051 Wooden Sticks
题意: 有 n 根木棒,长度和质量都已经知道,需要一个机器一根一根地处理这些木棒. 该机器在加工过程中需要一定的准备时间,是用于清洗机器,调整工具和模板的. 机器需要的准备时间如下: 1.第一根需要1 ...
- 使用Statement操作数据库
i import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql ...
- oracl 创建用户
-- Create the user create user ADMIN default tablespace SYSTEM temporary tablespace TEMP profile ...
- 用python2.7,采集新浪博客
#coding=utf-8 #新浪博客 import urllib import re import os url=['']*1500 #每一骗博客的地址 title=['']*1500 #每一篇博客 ...
- iOS 笔记
1. 使用断言NSAssert()调试程序错误 NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续 ...
- Linux tcpdump 详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...