Java - 解析简单计算器程序的字符串的问题

我有代码需要输入,然后计算出你想要用它做什么Java - 解析简单计算器程序的字符串的问题

例如。你会输入“x(+, - ,.. etc)y”,它会为你计算它。

即时通讯目前使用扫描仪和分裂它使得

double x = input.nextDouble(); 

String z = input.next();

double y = input.nextDouble();

现在我遇到了一个问题。说我想做一个阶乘,我会输入“x!”但代码仍然需要最后一次input.nextDouble();

我该怎么去(使用我在做的事情,如果可能的话)检查是否所有3都有输入,然后在使用if语句的方法之间进行选择,或者只有2个输入。

相对码

System.out.print("> "); 

double x = input.nextInt();

String z = input.next();

double y = input.nextInt();

if (x == 0) {

running = false;

} else if (z.equalsIgnoreCase("+")) {

System.out.println(addition(x, y));

}

回答:

相反获得三个不同的输入,只是输入串的一行的,因此分析该字符串,并输入它们转换成所需类型。通过这种方式,您可以从字符串中确定一个因子(1个变量)或其他任何操作。

使用扫描仪。

  boolean binary = true; 

Scanner input = new Scanner(System.in);

double x = input.nextInt();

String z = input.next();

//check if z is a unary operator ie.

if(z=='!')

binary = true;

if(binary)

double y = input.nextInt();

回答:

如果您有两个输入,那么您的代码将抛出NoSuchElementException。为了避免这种情况,您应该使用input.hasNext()

double x = input.nextInt(); 

String z = input.next();

if (input.hasNext()) {

// input has y

y = input.nextInt();

// perform operation on two elements

} else {

// no y

// perform operation on one element

}

回答:

添加一个额外的if语句,并且仅当z ='+'时才要求'y'。

System.out.print("> "); 

double x = input.nextInt();

String z = input.next();

if (x == 0) {

running = false;

} else if(z.equalsIgnoreCase("!")){

factorial(x);

}

else if (z.equalsIgnoreCase("+")) {

double y = input.nextInt();

System.out.println(addition(x, y));

}

回答:

试试这个代码

double y = 0.0; 

if(!z.contains("!")){

y = sc.nextDouble();

}

回答:

你必须得到输入的字符串,所以你必须使用String.indexof()和划分主串两个字符串必须parse像第一部分这个:

int a=Integer.parse(someString); 

和你的钢琴的第二部分克会告诉你你必须做什么。

以上是 Java - 解析简单计算器程序的字符串的问题 的全部内容, 来源链接: utcz.com/qa/265423.html

回到顶部