专栏名称: 程序员鱼皮
鹅厂全栈开发,持续分享编程技法和实用项目
目录
相关文章推荐
北京经信局  ·  事关人形机器人关键技术!这项新标准,已立项! ·  6 小时前  
北京经信局  ·  事关人形机器人关键技术!这项新标准,已立项! ·  6 小时前  
调研纪要  ·  机器人破圈 ·  23 小时前  
调研纪要  ·  机器人破圈 ·  23 小时前  
财联社AI daily  ·  宇树人形机器人,下架! ·  昨天  
财联社AI daily  ·  宇树人形机器人,下架! ·  昨天  
ChatAI42技术与产品  ·  估计KL散度的艺术:平衡偏差与方差的实用指南 ·  昨天  
51好读  ›  专栏  ›  程序员鱼皮

今日代码 PK | 获取字符第 n 次出现的位置

程序员鱼皮  · 公众号  ·  · 2024-03-27 13:29

正文

在我们日常的开发中,免不了对字符串进行各种操作,

比如现在我需要获取某个字符串在一段文本中第 n 次出现的索引,

该怎么做呢?

大部分小伙伴会觉得并不难,直接就写了出来,

示例代码:

public static int indexOf(String text, String searchText, int n) {
  if (StrUtil.hasEmpty(text, searchText)) {
     throw new BusinessException(ErrorCode.PARAMS_ERROR, "有参数为空");
  }
  // 循环找到第 n 个换行符的位置
  int index = -1;
  int tempIndex = -1;
  for (int i = 0; i      tempIndex = text.indexOf(searchText, tempIndex + 1);
     // tempIndex 等于 -1 text 中没有出现 n 次 searchText,直接返回 -1
     if (tempIndex == -1) {
        return -1;
     }
     if ((i + 1) == n) {
        index = tempIndex;
        return index;
     }
  }

  return index;
}

但大家有没有想过,这种经典的场景会有现成的实现呢?

比如 hutool ,示例代码:

int index = StrUtil.ordinalIndexOf(text, str, n);

本来我们需要一堆代码才能实现的功能,可能只需要一行代码就实现了。

你更喜欢哪种方式呢?欢迎投票并在评论区讨论。

完整代码片段来源于代码小抄,欢迎点击进入小程序阅读!

在线访问:https://www.codecopy.cn/post/66wxen

更多优质代码欢迎进入小程序查看!

往期推荐

今日代码 PK | 富文本转纯文本

今日代码 PK | 根据 code 获取小程序登录信息

今日代码 PK | 统一响应结果







请到「今天看啥」查看全文


推荐文章
调研纪要  ·  机器人破圈
23 小时前
调研纪要  ·  机器人破圈
23 小时前
财联社AI daily  ·  宇树人形机器人,下架!
昨天
财联社AI daily  ·  宇树人形机器人,下架!
昨天
书法在线  ·  最好的教养,懂得分寸与克制
7 年前
今日房产  ·  3个月不到,绿地林肯公园再拿新证
7 年前