Tag: 替换

更新Java String中替换方法的替代方法?

replace方法返回一个字符串对象而不是替换给定字符串的内容这一事实有点迟钝(但是当你知道字符串在Java中是不可变的时,这是可以理解的)。 通过在某些代码中使用深层嵌套替换,我获得了重大的性能提升。 有什么我可以用它取代它会使它更快吗?

如何使用replaceFirst替换{…}

我有一个包含xyaahhfhajfahj{adhadh}fsfhgs{sfsf}的字符串。 现在我想用空格替换{string} 。 我想用null替换大括号和其中的字符串。 我想使用replaceFirst ,但我不知道这样做的正则表达式。

有效的方法来替换字符串中的字符(java)?

我正在写一个小的JAVA程序: 将文本作为字符串 需要2个字符arrays 我试图做的将听起来像“找到并替换”,但它不一样,所以我认为清除它很重要。 无论如何,我想要获取此文本,查找第一个数组中的任何char是否与文本中的char匹配,如果是,请将其替换为第二个char数组中匹配的char(根据索引)。 我将用一个例子来解释:让我说我的文本(String)是:“java很棒!”; 我有2个数组(char []):“absm”和“!@ * $”。 希望的结果是将’a’改为’!’ ,’b’到’@’等等……意味着生成的文本将是: “java真棒!” 改为 – >“j @ v @ i * @ w * o $ e!” 这样做最有效的方法是什么?为什么? 我想过循环文本,但后来发现它不那么有效。 (可以使用StringBuilder / String类)

从字符串中删除所有出现的\

我试图从服务器获取一个对象数组,使用JSON。 服务器向我发送以下字符串。 “[{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:1,\”CompanyId\”:1,\”StartDate\”:\”2012-12-13T00:00:00\”,\”EndDate\”:\”2012-12-16T00:00:00\”,\”CouponCode\”:\”Test Coupon 1\”,\”Description\”:\”Test Deal Description 1\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 1\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:2,\”CompanyId\”:1,\”StartDate\”:\”2012-12-16T00:00:00\”,\”EndDate\”:\”2012-12-17T00:00:00\”,\”CouponCode\”:\”Test Coupon 2\”,\”Description\”:\”Test Description 2\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 2\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:3,\”CompanyId\”:1,\”StartDate\”:\”2012-12-14T00:00:00\”,\”EndDate\”:\”2012-12-15T00:00:00\”,\”CouponCode\”:\”Test Code 3\”,\”Description\”:\”Test Description 3\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 3\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:4,\”CompanyId\”:1,\”StartDate\”:\”2012-12-12T00:00:00\”,\”EndDate\”:\”2012-12-13T00:00:00\”,\”CouponCode\”:\”Test Coupon 4\”,\”Description\”:\”Test Description 4\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 4\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:5,\”CompanyId\”:2,\”StartDate\”:\”2012-12-12T00:00:00\”,\”EndDate\”:\”2012-12-14T00:00:00\”,\”CouponCode\”:\”AwD\”,\”Description\”:\”Very awesome deal!\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Awesome Deal 1\”}]” 现在,如果你仔细查看字符串,你会发现它包含一个\”而不是每一个” 。 现在无法将字符串格式化为JSONArray。 因此,我需要更换每次出现的\” with ” ,这将是一项非常简单的任务,而不是一个转义序列 。 我尝试使用以下代码。 String jsonFormattedString = jsonStr.replaceAll(“\\”, “”); 但它给了我以下例外。 12-19 00:35:59.575: W/System.err(444): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near […]

从Java中的字符串中删除双引号

如何从String中删除双引号? 例如:我希望”abd产生abd ,没有双引号。 这是我尝试过的代码: line1 = line1.replaceAll(“\”(\\b[^\”]+|\\s+)?\”(\\b[^\”]+\\b)?\”([^\”]+\\b|\\s+)?\””,”\”$1$2$3\””);

String.replaceAll比自己完成工作慢得多

我有一段旧代码,用于在字符串中执行查找和替换标记。 它接收from和to的映射,迭代它们,对于每个对,迭代目标字符串,查找from使用indexOf() ,并用to的值替换它。 它完成StringBuffer上的所有工作,最终返回一个String 。 我用这一行替换了那段代码: replaceAll(“[,. ]*”, “”); 我进行了一些比较性能测试。 当比较1,000,000次迭代时,我得到了这个: 旧代码:1287ms 新代码:4605ms 3倍长! 然后我尝试用3次调用替换它来replace : replace(“,”, “”); replace(“.”, “”); replace(” “, “”); 结果产生了以下结果: 旧代码:1295 新代码:3524 2倍长! 任何想法为什么replace和replace都是如此低效? 我能做些什么来加快速度吗? 编辑:感谢所有答案 – 主要问题确实是[,. ]* [,. ]*没有做我想做的事。 将其改为[,. ]+ [,. ]+几乎等于非基于正则表达式的解决方案的性能。 使用预编译的正则表达式有所帮助,但是很少。 (这是一个非常适合我的问题的解决方案。 测试代码: 用正则表达式替换字符串:[,。 ] * 用正则表达式替换字符串:[,。 ] + 用正则表达式替换字符串:[,。 ] +和预编译模式

用Java复制文件并替换现有目标

我正在尝试使用java.nio.file.Files复制文件,如下所示: Files.copy(cfgFilePath, strTarget, StandardCopyOption.REPLACE_EXISTING); 问题是Eclipse说“文件类型中的方法副本(Path,Path,CopyOption …)不适用于参数(File,String,StandardCopyOption)” 我在Win7 x64上使用Eclipse和Java 7。 我的项目设置为使用Java 1.6兼容性。 有没有解决方案,或者我必须创建这样的解决方法: File temp = new File(target); if(temp.exists()) temp.delete(); 谢谢。

一次替换多个子串

假设我有一个文件,其中包含一些文字。 其中有子字符串,如“substr1”,“substr2”,“substr3”等。 我需要用其他一些文本替换所有这些子串,例如“repl1”,“repl2”,“repl3”。 在Python中,我会创建一个这样的字典: { “substr1”: “repl1”, “substr2”: “repl2”, “substr3”: “repl3” } 并创建用’|’连接键的模式,然后用re.sub函数替换。 在Java中是否有类似的简单方法?

替换字符串中字符的最后一次出现

我有这样的字符串 “Position, fix, dial” 我想用转义双引号(\“)替换最后一个双引号(”) 字符串的结果是 “Position, fix, dial\” 我怎样才能做到这一点。 我知道替换第一次出现的字符串。 但不知道如何替换最后一次出现的字符串

Java String.replace / replaceAll无法正常工作

所以,我正在尝试用Java解析包含(打开)方括号的String输入。 我有str.replace(“\\[“, “”) ,但这绝对没有。 我也尝试过replaceAll ,有多个不同的正则表达式,但输出总是不变的。 我的一部分想知道这是否可能是因为我所有的反斜线字符都显示为日元符号(自从我将日语添加到我的语言中),但是这种方式已经超过一年并且没有让我任何以前的问题。 知道我在这里做错了什么吗?