这种方法有效:

import java.util.ArrayList;

import java.util.List;

public class Test {

public static void main(String[] args) {

String text = "my email is foo@bar.com and my number is (213)-XXX-XXXX";

List findings = new ArrayList<>();

findings.add(new Token(12, 22, "EMAIL_ADDRESS"));

findings.add(new Token(41, 54, "PHONE_NUMBER"));

System.out.println(replace(text, findings));

}

public static String replace(String text, List findings) {

int position = 0;

StringBuilder result = new StringBuilder();

for (Token finding : findings) {

result.append(text.substring(position, finding.start));

result.append('[').append(finding.type).append(']');

position = finding.end + 1;

}

return result.append(text.substring(position)).toString();

}

}

class Token {

int start, end;

String type;

Token(int start, int end, String type) {

this.start = start;

this.end = end;

this.type = type;

}

}

输出:

my email is [EMAIL_ADDRESS] and my number is [PHONE_NUMBER]

java 子串替换_Java中的多个同时子串替换相关推荐

  1. java replaceall函数_JAVA中string.replace和string.replaceAll的区别及用法

    展开全部 JAVA中string.replace()和string.replaceAll()的区别及用法乍一看,字面上理解好像replace只替换第一个出现的字符(受javascript的影响),32 ...

  2. 选择排序java从小到大代码_java中选择排序与归并排序的内容,详细解析

    上次我们已经为大家介绍过java中插入.分治和快速排序的内容,今天再来为大家介绍一下java中选择排序与归并排序的具体内容,并且通过实际的代码为大家解析. 首先我们需要了解的是,选择排序也是一种简单直 ...

  3. java word 批注_Java 添加、回复、修改(替换)、删除Word批注

    批注是一种常用于对特定文档内容进行注解的工具或方法,起到解释说明.标记指正的作用.在本篇文章中,将介绍如何操作Word批注的方法,包括: 1. 添加批注:添加文本到批注.插入图片到批注: 2. 回复批 ...

  4. java 字符串总结_Java中字符串(String)总结

    先说说JDK API: JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口,这些功能以类的形式封装). JDK API包含的 ...

  5. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  6. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  7. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园

    1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...

  8. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

  9. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  10. java 代码锁_Java中的Lock锁

    Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...

最新文章

  1. windows cmd 查看占用端口号PID并且结束进程
  2. ARKit从入门到精通-ARKit工作原理及流程介绍
  3. MongoDB学习笔记~官方驱动嵌套数组对象的更新
  4. Halcon算子盘点:Chapter 16:System
  5. linux查看系统的日志的一些实用操作
  6. @capire/common is not needed at runtime at all
  7. 构造函数属性赋值不用this案例
  8. java apt怎么用_java – APT和AOP在同一个项目中,使用Maven
  9. java excel导出 模板_Java Excel 导出 模板
  10. D3.js 入门系列1 - 简介和安装
  11. pandas - AttributeError: Series object has no attribute reshape
  12. AVPlayerViewController支持横屏设置
  13. java实现ssh_使用纯Java实现一个WebSSH项目
  14. 财源滚滚的第三方支付牌照
  15. zblog添加html标题出错,ZBLOG模板修改的一些技巧小结
  16. perl and LWP 文档
  17. Python之九宫格输入
  18. 深圳大澳湾度假团建攻略
  19. python编写会计凭证金蝶_怎么在金蝶财务软件中录入会计凭证
  20. 图像处理中,关于对比度,亮度,饱和度这些指标的概念

热门文章

  1. 配置ssh免密码登录
  2. 数据结构以及相关排序
  3. 分布式SQL引擎是如何炼成的 —— 运行时探秘(上)
  4. Java基础知识总结二(2)
  5. QT之计算器对四则运算表达式的解析(九)
  6. ehcache缓存共享(rmi方法)
  7. 八叶一刀流·三之型·业炎击团队
  8. Code blocks调试教程
  9. Win8(X64)下MySQL5.6版本安装及配置
  10. 将自己的姿态放低:你应具备赚钱以外的四种能力