java习题,求解!~

编写一个计算程序Comp.java,要求能够从命令行输入计算表达式,程序运行后能够给出结果。要求能够支持“+”,“-”,“x”,“/”,“%”五类运算,并能输出结果。

如:
> java Comp 2 x 3
6
> java Comp 2 + 3
5
希望大神来解答!

只能俩个数 不限大小

import java.util.List;
import java.util.Scanner;

public class Comp {
private static char yxf;
public static void main(String[] args) {
System.out.print("请输入公式:");
Scanner scanner=new Scanner(System.in);
String s=scanner.next();
String one="";String two="";
//* 42 +43 /47 -45 %37
char c[]=s.toCharArray();
int i=0;
for (int j = 0; j < c.length; j++) {
i++;
if(pd(c[j]))
break;
}
for (int j = 0; j < i-1; j++) {
one+=c[j];
}
for (int j = i; j < c.length; j++) {
two+=c[j];
}
int n1,n2,shu,result;
n1=Integer.valueOf(one);
n2=Integer.valueOf(two);
shu=(int)yxf;
if(shu==42)
result=n1*n2;
else if(shu==43)
result=n1+n2;
else if(shu==45)
result=n1-n2;
else if(shu==47)
result=n1/n2;
else 
result=n1%n2;
System.out.println(result);
}
public static boolean pd(char c){
String fh="+-*/%";
char x[]=fh.toCharArray();
for (int i = 0; i < x.length; i++) {
if(x[i]==c){
yxf=x[i];
return true;
}
}
return false;
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-29

public class Comp{

 public static void main(String args[]){

    if(args.length==3){

        int a = Integer.parseInt(args[0]);

        int b = Integer.parseInt(args[2]);

        String ys = args[1];

        if("+".equals(ys)){System.out.println(a+b);}

        else if("-".equals(ys)){System.out.println(a-b);}

        else if("x".equals(ys)){System.out.println(a*b);}

        else if("/".equals(ys)){System.out.println(a/b);}

        else if("%".equals(ys)){System.out.println(a%b);}

    }else{

        System.out.println("请按后面的格式执行程序:java Comp 3 + 5,其中的3 + 5可以自己换");

    }

 }

}

如图:

本回答被提问者采纳
第2个回答  2015-05-29
3-5/2怎么算追问

整数就可以......

追答

很复杂的,如果数字和运算符号分开输入的话还挺简单的

追问

可以写个程序么~QAQ

第3个回答  2015-05-29
这样的话,很负责,判断很多
第4个回答  2015-05-29
import java.util.Scanner;

public class TestHttpClient {
public static void main(String args[]){
System.out.print("> java Comp ");
Scanner sc = new Scanner(System.in);
String compString = sc.nextLine();
int i = 0 ;
if(compString.contains("+")){
i=1;
}
if(compString.contains("-")){
i=2;
}
if(compString.contains("*")){
i=3;
}
if(compString.contains("/")){
i=4;
}
if(compString.contains("%")){
i=5;
}
System.out.println("i--"+"i"+" "+"compString--"+compString);
switch(i){
case 1:
String s1[] = compString.toString().split("\\+");
System.out.println(Integer.parseInt(s1[0])+Integer.parseInt(s1[1]));
break;
case 2:
String s2[] = compString.toString().split("-");
System.out.println(Integer.parseInt(s2[0])-Integer.parseInt(s2[1]));
break;
case 3:
String s3[] = compString.toString().split("\\*");
System.out.println(Integer.parseInt(s3[0])*Integer.parseInt(s3[1]));
break;
case 4:
String s4[] = compString.toString().split("/");
System.out.println(Integer.parseInt(s4[0])/Integer.parseInt(s4[1]));
break;
case 5:
String s5[] = compString.toString().split("%");
System.out.println(Integer.parseInt(s5[0])%Integer.parseInt(s5[1]));
break;
}
}
}

实用8条,Java小白编程练习题
Java8条编程练习,小白易学 1、拼接打印: 输出: XXX: 这是我学习JAVA的第X年,我的期望薪资是XXX。2、定义两个整数,计算这两个整数加减乘除运算的结果,并把结果打印到控制台。3、接收用户输入的数据,判断是奇数还是偶数。4、分别通过for循环\/While循环\/do-While循环,写一个死循环。5、打印100以...

JAVA习题,请高手帮忙解答一下,急急急
01.X 父类中私有的方法和字段不会被继承 02.O java类只能单继承和多实现 03.O Exception为所有异常的父类,所以,他包含所有的异常 04.X Class1类的方法可以访问 05.X 抽象类有构造方法,因为抽象类中有非抽象方法,可以被继承。06.X 如果父类中的构造方法没有要求参数,则可以省略super();07...

JAVA习题求助(选择,判断)(30+20分)
7 B \/\/java是编译型的语言,通过JVM生成.class字节码文件,可以一处编译,到处运行 8 D \/\/用abstract修饰的方法外面称为抽象方法 9 A \/\/这个不用解释吧 10 A \/\/java中不能将int的数据自动转换成char型的,但是你可以定义一个char B=1;判断:1√ 2×\/\/有可能的是第一个catch是嵌套在第二...

JAVA练习题(第9章)
JAVA程序设计练习题第9章一、选择题【答案】:1.可用于获得文件或目录的路径名的是()A.FileB.RandomAccessFileC.FileInputStreamD.BufferedReader【答案】:A2.下面语句的功能是()。RandomAccessFileraf2=newRandomAccessFile("1.txt","rw");AA.打开当前目录下的文件1.txt,既可以向文件写数据,...

java练习题求解希望有完整代码
运行代码 具体的代码如下:import java.util.HashMap;public class SearchDemo {public HashMap<Integer,Integer> countMap(char[] arr){HashMap countMap = new HashMap<Integer, Integer>();for (int i = 0; i < arr.length; i++) {if(!countMap.containsKey(arr[i])){countMap.put(arr...

求解JAVA练习题代码
1. 一个奇数在乘3加1后一定得的是偶数,不明白自己乘下:1*3+1=4 3*3+1=10 5*3+1=16 7*3+1=22 9*3+1=28 ...那下一步又是除以2,所以最后肯定会得到2\/2=1的结果 2. 这规律。。 1+1=2, 1+2=3, 2+3 =5, 3+5=8, 5+8=13, 8+13 =21 3.1*1=1, 1*3=...

JAVA语言程序设计两道练习题。谢谢!
第一题有问题:1、创建Person接口(即“人”),它有setData()和getData()方法对“人”属性name、sex和birthday赋值和获得这些属性组成的字符串信息。问题是:你说要创建一个人(接口),然后里面有方法对人的属性进行赋值?这怎么可能呢,接口是没有成员变量(属性)的,怎么能赋值?接口里只能有常量。...

JAVA 习题求答案
1、程序与进程的概念差不多,现在主要说一下线程与进程的区别,每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销。而线程可以看做是轻量级的进程,同一类线程共享代码和数据克难攻坚,每个线程都有独立的运行栈和程序计数器,线程切换的开销小。总之一句话,线程是一个程序里面不同的执行...

java的简单的习题,要详细的答案
即元素是一维数组)所以一个二维数组的长度,就是里面一维数组的个数,所以:arr.length就是 2 arr[1].length就是指二维数组里面第一个元素的长度(因为其元素是一维数组,所以有长度)数组下标是从0开始 所以第一个是{40,30}很明显长度是2 所以答案是:D.2 2 希望对你有帮助 ...

java习题求助!!
1.public class Cylinder{ public final static float PI=3.14;public Cylinder(){} public float area(float radius){ return PI*radius*radius;} public float volume(float radius,float height){ return PI*radius*radius*height;} } 2.public class Cylinder{ public final static float PI=3....

相似回答