Python 下划线转驼峰 代码如下: def snake_to_camel(snake_str): components = snake_str.split('_') # 首字母小写,其余字母大写 return components + ''.join(x.title() for x in components) # 示例 snake_string = "example_string" camel_strin Python 桩白墨 2024-05-06 672 热度 0评论
spring-cloud-dependencies 导致版本号冲突的问题 pom.xml 中有这个依赖项: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</v Java 桩白墨 2023-08-08 672 热度 0评论
ES 在创建索引时,指定分词方式 我要在 ES 中创建一个索引,它包含多个字段。我想让其中一些字段使用“空格分词”,另一些字段使用“标准分词”。 示例代码如下: PUT /my_index { "settings": { "analysis": { "analyzer": { "space_analyzer": { "type": "custom", "tokenizer": "space_tokenizer" } }, "tok ElasticSearch 桩白墨 2023-08-04 572 热度 0评论
Python 中带花括号的字符串格式化报错的问题 Python 中可以用 "before_{}_after".format("content") 的方式对字符串格式化。 问题来了,如果模板字符串中,本身就包含花括号,会直接报错(例如,对 JSON 模板做格式化)。 怎么解决?用双重花括号进行转义。 如图所示: Python 桩白墨 2023-06-21 496 热度 0评论
使用 ANTLR 实现公式解析 前言 做类似 BI 的产品时,会遇到公式解析场景。用户(前端)输入一个公式字符串,后端要解析为一个具体的函数对象。 我们使用 ANTLR 来做公式解析。 关于 ANTLR 的基本用法,及它在项目中的基本配置,参见:ANTLR4入门 本文并不是手把手教程,只讲核心点,其他不赘述。 定义函数类 我们会有一个 Function 的抽象类/接口,其他所有函数都继承 Function。函数可以套函数。 根据 Java 桩白墨 2023-06-09 2109 热度 0评论
ANTLR4 入门 简介 ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,它根据语法定义生成解析器,解析器可以构建和遍历解析树。 所有编程语言的语法,都可以用ANTLR来定义。ANTLR提供了大量的官方 grammar 示例。 核心概念 理解三个核心概念:Lexer、Parser、AST。 词法分析器(Lexer):将字符序列转换为单词(Token) Java 桩白墨 2023-06-09 906 热度 0评论
使用 Stopwatch 监控 sql 执行时间 这是我看到的一种模式,感觉挺实用的。可以用于监控任意代码的执行时间,比直接使用 System.currentTimeMillis() 稍微优雅一点点。 Stopwatch 是 guava 包中的工具类。 示例代码如下: log.info("begin to execute sql: {}", sql); Stopwatch stopwatch = Stopwatch.createStarted() Java 桩白墨 2023-06-07 309 热度 0评论
Lombok 常用注解 注解浅释 @Getter:生成 Getter 方法 @Setter:生成 Setter 方法 @ToString:生成 ToString 方法 @EqualsAndHashCode:生成 Equals 和 HashCode 方法,可通过 exclude 参数排除不需要的字段 @Data:包含了@Getter,@Setter,@ToString,@EqualsAndHashCode,@Require Java 桩白墨 2023-06-07 189 热度 0评论
pip 安装指定版本的模块 给 python2 安装 requests 库,发现最新的 requests 不支持 python2。于是需要用到指定版本号的安装方式: pip install requests==2.27.0 Python 桩白墨 2022-11-16 134 热度 0评论
手写简易 HashMap 这是我去年碰到的一道面试题,当时直接整懵逼了。源码大致看过,原理也知道,突然要写还真写不出来。于是这两天又把这个问题翻出来,尝试写了一版。 1 明确需求 实现一个简易的 HashMap,包含 hashmap 的核心功能(put、get) 实现拉链法即可,不必实现红黑树 最好实现扩容逻辑 不支持 key 为 null 的情况(要支持也可以,需要单独处理,比较简单) 为了让需求更加明确,写了单元测试: Java 桩白墨 2022-07-30 137 热度 0评论