【问题标题】:How to do this delimiter?这个分隔符怎么做?
【发布时间】:2013-04-01 18:51:41
【问题描述】:

我有这个字符串:

1945:纽约大学:70:俄亥俄州立大学:65

我想使用扫描仪读取它并忽略':'7065,它们是分数字段。但我希望它读取年份。我知道如何设置分隔符来丢弃所有数字和':',但我不知道如何让它只丢弃某些数字。我所说的真的可以做到吗?

【问题讨论】:

  • 如果您确定前 4 个字符是必需的年份,为什么不使用 String.substring(0, 4) 单独提取它?
  • 拆分:字符,循环遍历它并忽略哪个不是数字
  • 您只想阅读年份、大学和州,对吗?
  • 是的,我知道我可以通过其他方式做到这一点。我只是想知道是否可以使用扫描仪的分隔符来做到这一点。
  • 你不能只用':'分隔并忽略索引2和4吗?

标签: java string text-parsing


【解决方案1】:

试试

    Scanner sc = new Scanner("1945:New York University:70:Ohio State:65");
    sc.useDelimiter(":\\d+:|:\\d+$|:");
    while(sc.hasNext()) {
        System.out.println(sc.next());
    }

输出

1945
New York University
Ohio State

【讨论】:

    【解决方案2】:

    我的回答,无幽默地转发

    Scanner scanner = new Scanner("1945:New York University:70:Ohio State:65");
    scanner.useDelimiter(":(\\d\\d:?)?");
    
    while(scanner.hasNext()) {
        System.out.println(scanner.next());
    }
    scanner.close();
    

    【讨论】:

      猜你喜欢
      • 2011-07-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 2014-02-05
      相关资源
      最近更新 更多