V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nevin47
V2EX  ›  Java

求助, Java 按照特定格式读取字符串

  •  
  •   nevin47 · 2016-08-23 15:20:40 +08:00 via Android · 2659 次点击
    这是一个创建于 2818 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做一个日志分析工具,需要对日志文本进行格式化拆分

    例如有一系列 AA,BB,CC:DD:EE:FF,GG 类型的文本,用户可以提供这种格式,有没有方法像 CPP 一样把 AA-GG 分别存入对应的字符串数组中呢?

    目前只查到了正则的方法,但是让用户写正则实在太不友好了,不知道万能的 V 友们有没有什么建议

    7 条回复    2016-08-24 23:34:56 +08:00
    nevin47
        1
    nevin47  
    OP
       2016-08-23 15:55:45 +08:00 via Android
    每人么😂
    miao1007
        2
    miao1007  
       2016-08-23 16:02:05 +08:00 via Android
    regex group ,为什么要让用户写正则,你写不就可以了
    nevin47
        3
    nevin47  
    OP
       2016-08-23 16:13:04 +08:00 via Android
    @miao1007 因为格式经常会变,代码里面不能把正则写死,而是要去读取用户给的格式描述
    miao1007
        4
    miao1007  
       2016-08-23 16:21:01 +08:00 via Android
    可以仿照 yyyymmdd 的格式写一个
    inoris
        5
    inoris  
       2016-08-23 22:17:54 +08:00
    如果你说的「像 C++ 一样」指的是 scanf 的话,应该不可以,因为 Java 没有指针,所以类似 scanf("format", args...) 这种形式的方法是不存在的。

    想了想似乎 Java 自带的唯一满足要求的就是正则了。同意 @miao1007 的观点,如果想对用户友好的话就自己写一套匹配规则吧。
    nevin47
        6
    nevin47  
    OP
       2016-08-23 23:38:56 +08:00 via Android
    @inoris 看样子只能自己封装一套了。。
    leaves615
        7
    leaves615  
       2016-08-24 23:34:56 +08:00
    @nevin47 求开源
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3022 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:03 · PVG 22:03 · LAX 07:03 · JFK 10:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.