You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Kotlin从Properties文件生成键值映射列表的需求

嘿,这个需求不难搞定!你要处理的是那种带注释、值用单引号包着的特殊Properties文件对吧?核心就是提取等号左边的键和单引号里的值,搞成一个映射表方便后续调用。我拿Python给你写个实用的例子,思路通了换其他语言也一样:

核心思路

  1. 过滤无效内容:先跳过注释行(//开头)和空行,只专注于有键值对的行
  2. 精准匹配键值:用正则表达式捕获等号左侧的键,以及单引号包裹的对应值
  3. 构建映射表:把捕获到的键值对存进字典/Map里,后续直接按键取值就行

代码实现(Python)

import re

def parse_custom_properties(file_path):
    key_value_map = {}
    # 正则匹配规则:兼容键前后的空白,精准抓单引号里的值
    match_pattern = re.compile(r'^\s*(\w+)\s*=\s*\'([^\']+)\'')
    
    with open(file_path, 'r', encoding='utf-8') as file:
        for line in file:
            cleaned_line = line.strip()
            # 跳过注释和空行
            if not cleaned_line or cleaned_line.startswith('//'):
                continue
            # 匹配当前行的键值对
            result = match_pattern.match(cleaned_line)
            if result:
                key = result.group(1)
                value = result.group(2)
                key_value_map[key] = value
    return key_value_map

# 调用示例:替换成你的文件路径
my_properties = parse_custom_properties('your_data.properties')

# 测试取值
print(my_properties.get('banana'))   # 输出:5.5
print(my_properties.get('tomatoes')) # 输出:3.4.s2

额外说明

  • 如果你的键包含-这类非字母数字的字符,把正则里的\w+改成[^=]+就行,这样能匹配等号前所有非等号的字符(记得还是要处理前后空白)
  • 要是用Java/Go等其他语言,逻辑完全一致:逐行读文件→过滤无效行→正则匹配→存进对应的数据结构(比如Java的HashMap)
  • 后续要输出值的话,直接从映射表里按键提取就好,比如my_properties['apples']就能拿到3.6f

内容的提问来源于stack exchange,提问作者ConnectionistSystems

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:22:55