Tag: 分裂

如何在Java正则表达式中拆分这个“树状”字符串?

这是字符串: String str = “(S(B1)(B2(B21)(B22)(B23))(B3)())”; 子 – ()中的内容可以是“”,或者只是str的值,或者类似于该模式,递归地,因此子()是子树。 预期结果: str1 is “(S(B1))” str2 is “(B2(B21)(B22)(B23))” //don’t expand sons of a son str3 is “(B3)” str4 is “()” str1-4是例如Array中的元素 如何拆分字符串? 我有一个熟悉的问题: 如何在Java正则表达式中拆分此字符串? 但它的答案对于这个来说还不够好。

即时分部

我正在尝试用Java创建一个小程序,将华氏温度转换为摄氏温度。 它涉及扣除32并乘以5/9。 所以我这样做了。 double Fahrenheit = 100; double celsius = (Fahrenheit – 32) * (5/9); System.out.println(celsius); 但由于某种原因,5/9返回零,甚至毁掉了它 double s = 5/9; 返回零,我不知道为什么。 我发现我能做到的唯一方法就是如果我宣布一切并且一步一步地慢慢地做。 double x = 5, p = 9, n = (x/p), Fah = 100; double Cel = Fah – 32; Cel = Cel*n; 任何人都可以告诉我为什么会发生这种事情,我认为至少将它声明为双重会返回一个值。 如果有人知道,那就绕道了。

为什么2 ^ 31不能被n整除?

http://docs.oracle.com/javase/6/docs/api/java/util/Random.html#nextInt%28int%29说: 该算法有点棘手。 它拒绝会导致分布不均匀的值(由于2 ^ 31不能被n整除)。 值被拒绝的概率取决于n。 最坏的情况是n = 2 ^ 30 + 1,其中拒绝的概率是1/2,并且循环终止之前的预期迭代次数是2。 算法: int bits, val; do { bits = next(31); val = bits % n; } while (bits – val + (n-1) < 0); 该代码测试n > 2^30且bits > n 。 然后设置最高有效位并将条件中的结果转换为负值。 据我所知, bits最多为2^31-1 =>有50%的概率。 bits可以是<2 ^ 30或者在2 ^ 30和2 ^ 31之间 无论如何, 为什么2 […]

如何检查数字是否可以被某个数字整除?

我正在使用AndEngine向屏幕添加精灵,并使用movemodifier方法。 我有两个整数MaxDuration和MinDuration; 我想要做的是当用户获得某个增量的分数时。 例如..当用户达到40(整数改变)时用户达到20(整数改变)。 所以基本上按20计算,每次得分满足一个可被20整除的数字变化。 我希望这是有道理的。 有没有什么方法或方法可以做到这一点? 我有一个UpdateTime处理程序,几乎每秒都可以检查得分。 有任何想法吗?

为什么Java的部门被打破了?

我是一位经验丰富的php开发人员,刚刚开始学习Java。 我现在正在学习一些Lynda课程,而且我还处于早期阶段。 我正在编写示例程序,要求用户输入并进行简单的计算和处理。 昨天我遇到了这种情况: double result = 1 / 2; 我的穴居人大脑我认为result == 0.5 ,但不是,不是用Java。 显然1 / 2 == 0.0 。 是的,我知道如果我将其中一个操作数更改为double,结果也将是double。 实际上这让我害怕。 我不禁想到这是非常破碎的。 认为整数除法产生整数是非常天真的。 我认为这种情况很少发生。 但是,由于Java被广泛使用并且正在搜索“为什么java的部门被破坏?” 不会产生任何结果,我可能错了。 我的问题是: 为什么除法表现得像这样? 我还能在哪里找到这样的魔法/伏都教/意外行为?

Java中的简单划分 – 这是一个错误还是一个function?

我正在Java应用程序中尝试这个简单的计算: System.out.println(“b=” + (1 – 7/10)); 显然我想要输出b=0.3 ,但这是我得到的b=1 。 什么?! 为什么会这样? 如果我做: System.out.println(“b=” + (1 – 0.7)); 我得到了正确的结果,即b=0.3 。 这里出了什么问题?