2011-11-20 40 views
1

我将如何回答诸如“以下表达式评估为”的问题。Java中的字符串算术(评估混合类型表达式)

"2 + 2 " + 3 + 4; 

,因为我在网站上的做法,并想尽一切办法作为可能的答案很艰难的时期,从2234

+0

可能是29? (“2 + 2”= 22,22 + 3 + 4 = 29)然而,这似乎并不是真正合适的问题。 – Oybek

+3

你有没有尝试把一个Java程序,编译,然后运行看到答案? – vidstige

+0

我不明白这个问题。你能更清楚地向我解释这一点吗? – deadfish

回答

5

在Java中,如果添加的任一边是字符串,则非字符串操作数会转换为字符串,并且两个字符串会连接在一起。永远不会通过使用加法将字符串转换为整数。也不会评估包含整数表达式的字符串。

如此以来,除了是左联"2 + 2 " + 3 + 4被解析为("2 + 2 " + 3) + 4,这将评估为"2 + 2 3" + 4,这将反过来评估为"2 + 2 34"

+0

谢谢sepp2k – Vonage93

+0

我现在怎么做... 2 +“2 + 3”+ 4 – Vonage93

+0

看看你是否可以使用@ sepp2k使用的过程自己完成它。 (你应该得到“2 2 + 3 4”) –

0

“2 + 2”+ 3 + 4是Java中的字符串,等于“2 + 2 34”。

+2

-1:你是否真的尝试将它放入代码?这实际上是不正确的。 –

+0

是的,只是编辑。我从头顶回答,然后出于好奇心处理它。我的道歉 – DPM

+0

'(“2 + 2”+ 3 + 4)是2 + 234''(“2 + 2”+ 3 + 4)是2 + 234' - 看白色空间! – deadfish

0

您需要将字符串解析为其组件,然后解释这些组件,就好像您正在编写表达式解释器(您是)。

相关问题