当前位置: 首页 > 知识库问答 >
问题:

字符串replace()和replaceAll()之间的差异

厍华清
2023-03-14

除了后面使用正则表达式之外,java.lang.String的替换()替换所有()方法有什么区别?对于简单的替换,如将.替换为/,有什么区别吗?

共有3个答案

司承业
2023-03-14

replace()replaceAll()都替换字符串中出现的所有内容。

我总是发现例子有助于理解差异。

如果您只想用另一个字符替换一些char,或者用另一条字符串替换一些字符串,请使用replace()(实际上是CharSequence)。

例1

将字符 x 的所有匹配项替换为 o

String myString = "__x___x___x_x____xx_";

char oldChar = 'x';
char newChar = 'o';

String newString = myString.replace(oldChar, newChar);
// __o___o___o_o____oo_

示例 2

将所有出现的字符串< code>fish替换为< code>sheep。

String myString = "one fish, two fish, three fish";

String target = "fish";
String replacement = "sheep";

String newString = myString.replace(target, replacement);
// one sheep, two sheep, three sheep

如果要使用正则表达式模式,请使用replaceAll()

例3

将任何数字替换为x

String myString = "__1_6____3__6_345____0";

String regex = "\\d";
String replacement = "x";

String newString = myString.replaceAll(regex, replacement); 
// __x_x____x__x_xxx____x

示例 4

删除所有空格。

String myString = "   Horse         Cow\n\n   \r Camel \t\t Sheep \n Goat        ";

String regex = "\\s";
String replacement = "";

String newString = myString.replaceAll(regex, replacement); 
// HorseCowCamelSheepGoat

文档

  • 替换(char-oldChar,char-newChar)
  • 替换(CharSequence目标,charsequencereplacement)
  • replaceAll(字符串正则表达式,字符串替换)
  • replaceFirst(字符串正则表达式,字符串替换)

正则表达式

濮君植
2023-03-14

问:< code>java.lang.String方法< code>replace()和< code>replaceAll()之间有什么区别,除了后者使用regex。

答:只有正则表达式。它们都替换所有:)

http://docs.oracle.com/javase/8/docs/api/java/lang/String.html

PS:

还有一个replace eFirst()(需要正则表达式)

长孙景焕
2023-03-14

在<code>java.lang.Stringreplace方法将替换所有出现的字符或CharSequence。另一方面,replaceFirstrepliceall,的第一个Stringarguments是正则表达式(regex)。使用错误的函数可能会导致细微的错误。

 类似资料:
  • 问题内容: 除了以后使用正则表达式之外,java.lang.String 和方法之间有什么区别?对于简单的替代喜欢,更换用 ,有什么不同? 问题答案: 在中,该replace方法可以采用一对或一对(其中是子类,因此很高兴采用一对)。该方法将替换所有出现的或。在另一方面,这两个参数和正则表达式(正则表达式)。使用错误的功能可能会导致细微的错误。

  • 本文向大家介绍Java字符串replace(),replaceFirst()和replaceAll()方法,包括了Java字符串replace(),replaceFirst()和replaceAll()方法的使用技巧和注意事项,需要的朋友参考一下 该方法 String类的replace()方法接受两个String值- 一个表示要替换的String(子字符串)部分。 另一个代表需要替换指定子字符串的

  • 问题内容: 一个非常简单的问题,但这是来自C / C ++人员进入Java的复杂性的。 我知道我可以启动jUnit和自己的一些性能测试来获得答案。但我只是想知道这是否在那里。 在性能方面,String.replaceAll()和Matcher.replaceAll()(在从Regex.Pattern创建的Matcher对象上)之间是否存在已知差异? 此外,两者在高级API方面的区别是什么?(不可变

  • 这些声明有什么不同? 每种情况下的内存分配情况如何?

  • 调用这些方法的主要区别是什么: 替换已经存在的片段,将片段添加到活动状态,并将活动添加到后堆栈,这意味着什么? 其次,使用,此搜索是通过/方法还是通过方法添加的标记?

  • 我错过了什么?