小编Jon*_*ber的帖子

Spring @RequestBody Override

我有一个Spring控制器来接收帖子并且它有效.唯一的问题是我们的SMS提供商将向我们发送包含大写首字母的键的标题,例如:

 {
"FromPhoneNumber":"15177754077",
"ToPhoneNumber":"17572046106",
"ResponseReceiveDate":"7/29/2014 5:25:10 AM",
"Message":"PIN 1234"
}
Run Code Online (Sandbox Code Playgroud)

Spring会抛出一个错误:

    Could not read JSON: Unrecognized field "FromPhoneNumber" (class com.talksoft.spring.rest.domain.CDynePost), not marked as ignorable (4 known properties: "responseReceiveDate", "toPhoneNumber", "fromPhoneNumber", "message"])
Run Code Online (Sandbox Code Playgroud)

所以,必须有一种方法可以覆盖这种行为.以下是处理CDyne帖子的控制器方法:

    @RequestMapping(method = RequestMethod.POST, value="/celltrust")
    public ResponseEntity<String> cellTrustPost(@RequestBody CDynePost cDynePost) {
        String message = "FAILED";
        UserInteraction userInteraction = getUserInteraction(cDynePost);
        boolean success = someSpringService.logMessage(userInteraction);

        if (success) {
            message = "OK";
            return new ResponseEntity<String>(message, HttpStatus.ACCEPTED);
        } else {
            return new ResponseEntity<String>(message, HttpStatus.FAILED_DEPENDENCY);
        }       

    }
Run Code Online (Sandbox Code Playgroud)

这是CDynePost类:

public class CDynePost {
    private String …
Run Code Online (Sandbox Code Playgroud)

java post spring json jaxb

5
推荐指数
1
解决办法
916
查看次数

动态编程实现不佳还是 HashMap 慢?

我正在测试两种斐波那契方法。两者都应该是线性的。要么我不理解记忆,要么 HashMap 查找比我想象的要慢。

我知道递归函数不应该通过添加 DP 来加速很多,但由于它是静态的,所以只需要计算一次(永远不会超出范围)。第一次执行后,它从 HashMap 中检索答案。

我这样做是为了准备实现 O(log n) 斐波那契函数和基准测试,但当我看到这个时有点绕道。(即使在迭代方法中添加记忆也会减慢速度)。

请赐教,我现在感觉很愚蠢。

迭代方法:

public static int linearIterativeFib(int x) {
    if (x <= 2) {
        return 1;
    } else {
        int prev = 0;
        int result = 1;
        for (int i = 2; i <= x; i++) {
            int temp = result;
            result += prev;
            prev = temp;
        }
        return result;
    }       
}
Run Code Online (Sandbox Code Playgroud)

递归方法:

static Map<Integer, Integer> memo = new HashMap<Integer, Integer>();

public static int linearRecursiveFib(int x) {
    if (x …
Run Code Online (Sandbox Code Playgroud)

java recursion hashmap dynamic-programming fibonacci

5
推荐指数
1
解决办法
570
查看次数

正则表达式:替换正则表达式匹配的部分

使用Vim,Notepad ++或Sublime我希望能够搜索和替换部分匹配.我认为这可以使用负面预测来完成,但我想征求社区的意见.

假设我想在以下示例中将"掉线"事件替换为"后果":

  • 他们担心核衰退和辐射.
  • 有堕落,然后有辐射.
  • 在长崎,一个最大的担忧是失败.
  • 2000年代最好的比赛之一是"失败".

一个反例:

  • 那将超出你的范围.

我想一个明显的匹配模式是:

fall out[^a-z]
Run Code Online (Sandbox Code Playgroud)

但是,使用此匹配替换匹配中的"后果"会产生不良影响,即四个正例中的逗号,空格,句点和尾随引号将被删除.

人们通常如何处理这个问题,以及如何在比赛中保留上下套管?

regex vim negative-lookahead

4
推荐指数
1
解决办法
106
查看次数

伯特兰的悖论模拟

所以,我前几天在Hacker News上看到了这个:http://web.mit.edu/tee/www/bertrand/problem.html

它基本上表示半径为1的圆上的随机和弦的长度大于3的平方根的概率是多少.

看看它,答案显然是1/3,但对HN的评论让人比我更聪明.https://news.ycombinator.com/item?id=10000926

我不想辩论,但我确实想确保我不是疯了.所以我编码了我认为会证明它是P = 1/3,但我最终得到P~.36.所以,我的代码有些不对劲.

我可以进行健全检查吗?

    package com.jonas.betrand;

    import java.awt.geom.Point2D;
    import java.util.Random;

    public class Paradox {
        final static double ROOT_THREE = Math.sqrt(3);

        public static void main(String[] args) {
            int greater = 0;
            int less = 0;
            for (int i = 0; i < 1000000; i++) {
                Point2D.Double a = getRandomPoint();
                Point2D.Double b = getRandomPoint();

                //pythagorean
                if (Math.sqrt(Math.pow((a.x - b.x), 2) + Math.pow((a.y - b.y), 2)) > ROOT_THREE) {
                    greater++;
                } else {
                    less++;
                } …
Run Code Online (Sandbox Code Playgroud)

java simulation paradox

3
推荐指数
1
解决办法
506
查看次数