douzhi1972 2017-08-07 02:23
浏览 106
已采纳

使用golang根据位置解析字符串的好方法是什么?

I'm designing an simple application using go to read a few file formats representing customers file formats. My first idea is to read each file line and then parse it to an struct. So far so good, but i need to split each field based on it's index. For example:

line := "1003450020170804890000000022344"

Id starts on position 1 to position 4 = 1003 CustomerId is position 5 to 7 and all other fields related to that structure.

I would like to know if there's something more efficient to read a format and apply to this file line, i thought to create some struct for each field and have the start and end fields, but it sounds weird to me.

type Record struct {
Id       int
Date     time.Time
Value    float64
ClientId int32
}

type RecordId struct {
  Start  int
  Finish int
  Value  int
}

type ClientId struct {
  Start  int
  Finish int
  Value  int32
}

I don't know if i'm on the way, maybe there's something more elegant that will work better on this case.

  • 写回答

2条回答 默认 最新

  • dpbfb7119 2017-08-07 03:52
    关注
    var a, b int
    n, err := fmt.Sscanf("1003450020170804890000000022344", "%4d%3d", &a, &b)
    if err != nil {
       // ...
    }
    
    fmt.Println(a) // 1003
    fmt.Println(b) // 450
    

    Then you could create a structure with these.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题