首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用replaceAll方法重新替换Java中的所有文本实例

使用replaceAll方法重新替换Java中的所有文本实例
EN

Stack Overflow用户
提问于 2015-05-20 05:23:46
回答 3查看 67关注 0票数 0

我需要替换Java中的文本实例,我目前正在使用replaceAll方法,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    String originalText = ("The City of London has existed for approximately 2000 years and the City of London remains to this day.");
    String originalKeyword = ("City of London");
    String revisedKeyword = ("");
    if (String_Utils.getLengthOfKeyword(originalKeyword) > 1) {
        revisedKeyword = String_Utils.removeChar(originalKeyword, ' ');
    }
    else {
        revisedKeyword = originalKeyword;        
    }        
    String revisedText = originalText.replaceAll(originalKeyword, revisedKeyword);        
    System.out.println("Original text: " + originalText);
    System.out.println("Revised text: " + revisedText);
    System.out.println("Original keyword: " + originalKeyword);
    System.out.println("Revised keyword: " + revisedKeyword);

上面的目的是保存一个没有空格的原始关键字的修订版,如果关键字中的单词数超过一个,则替换字符串中原始关键字的所有实例。

考虑到这将是一个批处理操作,有谁知道是否有更好的方法来批量替换Java字符串中的文本?或者有关于replaceAll的任何陷阱

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-20 05:27:03

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String originalText = ("The City of London has existed for approximately 2000 years and the City of London remains to this day.");
String originalKeyword = ("City of London");
String revisedKeyword = ("");

“保存没有空格的原始关键字的修订版”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String newVersion = new String(originalKeyword);
revisedKeyword = newVersion.replaceAll(" ","");

“如果关键字中的单词数超过一个,则替换字符串中原始关键字的所有实例。”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int lengthWord = originalKeyword.split(" ").length;
if(lengthWord > 0){ 
    originalText.replaceAll(originalKeyword , revisedKeyword);
}
票数 0
EN

Stack Overflow用户

发布于 2015-05-20 05:29:29

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public static void main(String[] args) {


        String originalText = ("The City of London has existed for approximately 2000 years and the City of London remains to this day.");
        String originalKeyword = ("City of London");
        String revisedKeyword = ("");

        String[] arr = originalText.split(originalKeyword);
        String newString = "";

        for(int i = 0 ; i < arr.length ; i += 2) {

            if(i < (arr.length -1)) {
                newString += arr[i] + revisedKeyword + arr[i+1];
            }
            else {
                newString +=  revisedKeyword + arr[i];
            }
        }
        System.out.println(newString);
}

这里,newString是你要找的东西。

票数 0
EN

Stack Overflow用户

发布于 2015-05-20 06:29:51

请注意,在内部,replaceAll()使用已编译的模式来匹配接收到的字符串。如果您希望在不同的原始文本中替换相同的关键字,您可能需要首先缓存已编译的模式。如果这仅仅是一次的事情,replaceAll()似乎很好。

更快的实现需要从包含原始文本的字符数组中实现替换方法,手动识别每个子字符串并替换它。另一种可能的方法是使用StringBuilder,跟踪上一次匹配的内部索引,并使用replace()直接替换关键字。任何避免Pattern和字符串不可变造成的开销的东西。

不过,要确定真正的需要,就必须以这些指标为基准。对于您所介绍的情况,replaceAll()可能表现得足够好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30351019

复制
相关文章
Java测试框架九大法宝
大多数测试人员更喜欢Java,因为它具有平台独立性和易于构建任何东西的易用性——从简单的应用程序到复杂的移动应用程序、网站等等。
FunTester
2021/08/18
2.5K0
Selenium 4 Java的最佳测试框架
几十年来,Java一直是开发应用程序服务器端的首选编程语言。尽管JUnit一直在与开发人员一起帮助他们进行自动化的单元测试,但随着时间的推移和测试行业的发展,特别是伴随着自动化测试的兴起,已经开发了许多基于Java的开源框架,它们在验证和业务逻辑方面与JUnit有所不同。在这里,我将讨论用于使用Selenium WebDriver执行测试自动化的顶级Java测试框架,还将重点介绍这些顶级Java测试框架的优缺点和独到之处。
FunTester
2019/12/17
1.5K0
3个开源行为驱动的开发工具[DevOps]
行为驱动开发(BDD)似乎非常容易。测试以易于阅读的格式编写,允许产品所有者,业务赞助商和开发人员提供反馈。这些测试是团队的有效文档,因此不需要任何要求。这些工具易于使用,可让自动化测试套件。每次测试运行都会生成报告,以记录每个步骤并向您显示测试失败的地方。
yyx
2019/12/25
1.2K0
3个开源行为驱动的开发工具[DevOps]
如何高效及时地完成工作
最近颇觉事务繁多,且各种事情千头万绪,一不注意,要么未能及时完成工作任务,要么就是讶然忘却,事到临头又急急忙忙赶任务,使得心中常常绷了一根弦,哪怕只是休息片刻,内心也无法保持宁静。
张逸
2023/03/23
5880
如何高效及时地完成工作
使用时间特征使让机器学习模型更好地工作
来源: DeepHub IMBA本文约2300字,建议阅读8分钟在本文中,通过一个实际示例讨论如何从 DateTime 变量中提取新特征以提高机器学习模型的准确性。 特征工程是构建机器学习模型最重要的方面之一。在本文中,我将通过一个实际示例讨论如何从 DateTime 变量中提取新特征以提高机器学习模型的准确性。 从日期中提取特征 一些数据集提供了日期或日期时间字段,通常在为机器学习模型构建输入特征时会被删除(除非您正在处理时间序列,显然 😃)。 但是,DateTime 是可用于提取新特征的,这些新特征
数据派THU
2022/03/04
1.7K0
自学java,如何快速地找到工作
    本人最近一直在帮零基础的java开发者提升能力和找工作,在这个过程中,发现零基础的java程序员,在自学和找工作时,普遍会出现一些问题,同时在实践过程中,也总结出了一些能帮零基础java开发尽快提升能力和尽快找工作的经验。在本文里,就将围绕零基础java开发自学和找工作这个过程,给出一些相关的建议。
用户1153489
2022/05/10
7900
SEO优化推广工作应该如何展开呢?
据统计,全球500强的公司中,有90%以上的公司在公司网站中导入了SEO技术。然而SEO优化到底做什么?SEO优化是一种过程,他的目的是为了提高网站的流量和质量,实施的渠道是搜索引擎,获得的流量是根据目标关键词搜索结果点击而来的自然流量。
茹莱神兽
2022/02/13
3870
SEO优化推广工作应该如何展开呢?
什么是OTT广告?它又是如何工作的呢?
有线电视正在衰落,在便利性和覆盖范围方面严重输给了流媒体。2016年第三季度OTT(over-the-top)设备的视频广告观看量同比增长63%,预计这一趋势将持续增长。
iCDO互联网数据官
2018/09/30
6.7K0
什么是OTT广告?它又是如何工作的呢?
教你如何灵活地用数据驱动的方式讲故事
首先,你有思考过一个问题吗?当你的直觉与你所掌握的数据矛盾的时候,你是听从于直觉还是相信你所掌握的数据呢?2016年的一项调查发现,90%的决策者会更偏向听从自己的直觉,即凭借以往的经验来做决策。这听起来很不可思议,但它是真实存在的。决策者有时候会因为对数据的来源不确信,有时不确定数据的准确性,也有可能仅仅是因为决策者自身性格的原因。各种各样的因素都会导致决策者不相信数据,反而遵从直觉去做决策。
1480
2019/10/21
6080
教你如何灵活地用数据驱动的方式讲故事
Kubernetes里的Service究竟是如何工作的呢?
Service是Kubernetes接入层的一种抽象资源,它为我们提供了一种固定的、统一的访问接口地址和负载均衡能力,这时可能会想到,当时使用docker-compose的时候,不存在Service概念,不也运行起来了吗?是的,在Kubernetes集群内部Pod ip也是互通的,但是Pod的ip会经常因为扩容、重建而导致客户端访问错误,pod访问无法提供负载均衡的能力,而Service通过选择一组Pod的label就直接可以访问到Pod,而且可以使用万年不变的域名,所以就选择Service了。
用户5166556
2020/06/15
8340
RxJava 容易忽视的细节: subscribeOn() 方法没有按照预期地运行
我们知道,subscribeOn() 方法通过接收一个 Scheduler 参数,来指定对数据的处理运行在特定的线程调度器 Scheduler 上。若多次执行 subscribeOn() 方法,则只有最初的一次起作用。
fengzhizi715
2021/11/24
1.9K0
如何运用领域驱动设计 - 工作单元
在上一篇 《如何运用领域驱动设计 - 存储库》 的文章中,我们讲述了有关仓储的概念和使用规范。仓储为聚合提供了持久化到本地的功能,但是在持久化的过程中,有时一个聚合根中的各个领域对象会分散到不同的数据库表里面;又或者是一个用例操作需要操作多个仓储;而这些操作都应该要么同时成功,要么同时失败,因此就需要为这一系列操作提供事务的支持,而事务管理就是由工作单元来提供的。在上一篇中,可能已经提到了工作单元,但是仅仅是一笔带过,现在我们就来详细的探究该如何更好的来实现工作单元。(文章的代码片段都使用的是C#,案例项目也是基于 DotNet Core 平台)。
句幽
2020/04/27
7390
日常工作中有哪些很好的节约时间的技巧?
我一直在测试和调整各种生产效率的技术,在过去的五年中,阅读了大量的书籍(其中大多数是重复的) ,这里是我的一些结论: 这不是一个关于时间的问题,而是关于精力。 为了“有效率”,我们试图在一个工作日内塞进尽可能多的小时,但最终一切都更多地取决于你的注意力,积极性和良好状态(这些都是直接与精力等级联系在一起)而不是工作时间 。 我最近在葡萄柚的一个内部演示上提及了我提高效率的想法,结果性的演示是在Slideshare上的:producitivity porn. 其中一些关键结论: 1. 决定什么是重要的事,因为
小小科
2018/05/02
9630
什么是客户数据平台?它又是如何工作的呢?
在网络营销的早期,营销人员面临着客户信息有限的问题。对于目标客户定位的可能性很小,并且在线广告比现在更容易被点击或错过。
iCDO互联网数据官
2018/12/11
1.7K0
什么是客户数据平台?它又是如何工作的呢?
如何判定是否一份适合工作呢
春节仿佛还在昨天,转眼间2023年已经过半。分享和总结一下自己过去的这6个月吧!你可以从以下几个方面展开谈谈。
zhangrelay
2023/07/24
2.2K0
如何判定是否一份适合工作呢
如何更好地组织你生活和工作中的知识
这些年来,我一直探索和尝试解决的一个重大问题是:在这样一个信息爆炸的时代,如何更好地将每天获取的信息组织成知识,然后再将这些知识消化,经过自己的思考,变成自己的智慧和洞见呢?
tyrchen
2020/06/19
1K0
如何更好地组织你生活和工作中的知识
JavaScript是如何工作的:存储引擎+如何选择合适的存储API
在设计 Web 应用程序时,为本地浏览器选择合适的存储机制至关重要, 一个好的存储引擎可以确保可靠地保存信息,减少带宽,提高响应能力。正确的存储缓存策略是实现离线移动 Web 体验的核心构建块,同时也大大的提高了用户体验。
前端小智@大迁世界
2019/01/29
1.6K0
JavaScript是如何工作的:存储引擎+如何选择合适的存储API
全国产交换机的工作温度多少?如何散热呢?
全国产交换机也称自主可控交换机,国产化交换机 。全国产交换机的交换机芯片、管理芯片等原材料、元器件都是国内研发、生产、制造,交换机中所使用的元器件在种类、数量上国产化的占比要达到95%以上。全国产交换机可以在多少温度下进行工作呢?他又是如何散热的呢?来,海翎光电的小编和您聊聊。
武汉利又德
2022/04/06
1.5K0
python编程之API入门: (一)使
在网络编程中,我们会和API打交道。那么,什么是API?如何使用API呢?本文分享了一下我对API的理解以及百度地图API的使用。 API是"Application Programming Inte
py3study
2020/01/16
1.6K0
基因组深度学习模型很难很好地解释个体转录组的变异
今天为大家介绍的是来自Nilah Ioannidis的一篇讨论深度学习模型在基因序列应用的论文。基因组深度学习模型可以直接从DNA序列预测全基因组的表观遗传特征和基因表达水平。尽管当前的模型在从参考基因组预测不同细胞类型的基因表达水平方面表现良好,但它们在解释个体间由于顺式调控基因变异而导致的表达变异能力仍然未被充分探索。在这里,作者对四种最先进的模型进行了个体基因组与转录组数据配对的评估,发现在解释个体间表达变异方面的性能有限。
DrugAI
2023/09/09
3010
基因组深度学习模型很难很好地解释个体转录组的变异

相似问题

如何使Eclipse工具与JSP很好地工作?

21

如何使DataTables很好地使用RESTful API

23

如何使不同对象的数组与NSPredicate很好地工作

11

如何使我的UsersController与current_user很好地工作?

30

如何使Laravel与BrowserSync很好地合作?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文