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),而第二种方法可以用另一个任意长的字符串替换任意长的字符串
就你而言:
- 第一个调用将每个
替换为nul字符f
,有效地将它们替换为不可打印的字符\0
- 第二个调用将每个1个字符的字符串
替换为0个字符的“f”
,有效地删除了所有“
字符f
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字符串不是那样工作的。