Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java string.replace(ch,&x27;\0&&x27;)和string.replace(";&x2B;ch,";)之间有什么区别 class pola{ 公共静态void main(字符串[]args){ String name=“快速和愤怒”; 字符s='f'; System.out.println(name.replace(s,'\0'));//--->第1行 System.out.println(name.replace(“+s,”);//--->第2行 } }_Java_String_Replace - Fatal编程技术网

Java string.replace(ch,&x27;\0&&x27;)和string.replace(";&x2B;ch,";)之间有什么区别 class pola{ 公共静态void main(字符串[]args){ String name=“快速和愤怒”; 字符s='f'; System.out.println(name.replace(s,'\0'));//--->第1行 System.out.println(name.replace(“+s,”);//--->第2行 } }

Java string.replace(ch,&x27;\0&&x27;)和string.replace(";&x2B;ch,";)之间有什么区别 class pola{ 公共静态void main(字符串[]args){ String name=“快速和愤怒”; 字符s='f'; System.out.println(name.replace(s,'\0'));//--->第1行 System.out.println(name.replace(“+s,”);//--->第2行 } },java,string,replace,Java,String,Replace,行1和2之间有什么区别?第一行调用和第二行调用 这两种方法之间的一大区别是,第一种方法只能对char值进行1对1的替换(即,每次出现一个char时,正好替换为另一个char),而第二种方法可以用另一个任意长的字符串替换任意长的字符串 就你而言: 第一个调用将每个f替换为nul字符\0,有效地将它们替换为不可打印的字符 第二个调用将每个1个字符的字符串“f”替换为0个字符的“,有效地删除了所有f字符 当您对API设计/细节有疑问时,几乎总是最好的开始 返回将此字符串中所有出现的oldChar替

1
2
之间有什么区别?

第一行调用和第二行调用

这两种方法之间的一大区别是,第一种方法只能对
char
值进行1对1的替换(即,每次出现一个char时,正好替换为另一个char),而第二种方法可以用另一个任意长的字符串替换任意长的字符串

就你而言:

  • 第一个调用将每个
    f
    替换为nul字符
    \0
    ,有效地将它们替换为不可打印的字符
  • 第二个调用将每个1个字符的字符串
    “f”
    替换为0个字符的
    ,有效地删除了所有
    f
    字符
当您对API设计/细节有疑问时,几乎总是最好的开始

返回将此字符串中所有出现的oldChar替换为newChar后生成的字符串

用指定的文字替换序列替换与文字目标序列匹配的此字符串的每个子字符串。替换从字符串的开头一直进行到结尾,例如,将字符串“aaa”中的“aa”替换为“b”将导致“ba”而不是“ab”


null
字符仍然是一个字符,空字符串不包含任何字符-简而言之,这就是区别。

如果打印每个字符的字符数组,您可以更清楚地看到,在其中一个字符中,
f
字符被删除,而在第二个字符中,它们被替换为
\0

Arrays.toString(name.replace("" + s, "").toCharArray())
=> "[a, s, t,  , a, n, d,  , u, r, i, o, u, s]"

Arrays.toString(name.replace(s, '\0').toCharArray())
=>"[\000, a, s, t,  , a, n, d,  , \000, u, r, i, o, u, s]"

为什么不直接读这本书呢?并且会清楚地告诉你有什么不同。要知道有什么不同:比较结果字符串的长度。非常感谢。我知道这两个字母都替换了字母“f”。我想知道这两种方法对字符串长度的影响。@I_am_ssr:这从我的回答中应该很明显:一种方法保持相同的长度,因为它只进行1对1替换,另一种方法删除所有
f
,因此,缩短了长度。非常感谢你的回答,我对长度部分感到困惑。@ IyAmithSSR通知:不要期望这会像在C中那样(即,在字符串的中间添加<代码> 0 \ < /COD>将有效地截断它)。如果你怀疑的话,Java字符串不是那样工作的。