栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java字符串替换和NUL(NULL,ASCII 0)字符?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java字符串替换和NUL(NULL,ASCII 0)字符?

在Java中用null字符替换String中的字符是否还能工作?我知道’ 0’将终止c字符串。

这取决于您如何定义有效的方法。是否用替换所有出现的目标字符

''
?绝对!

String s = "food".replace('o', '');System.out.println(s.indexOf('')); // "1"System.out.println(s.indexOf('d')); // "3"System.out.println(s.length()); // "4"System.out.println(s.hashCode() == 'f'*31*31*31 + 'd'); // "true"

一切似乎对我来说都很好!

indexOf
可以找到它,它算作长度的一部分,并且其哈希码计算的值为0;一切都由JLS / API指定。

DOES NOT 如果你希望用空字符替换字符会以某种方式删除的字符串的字符工作。当然,它不是那样工作的。空字符仍然是字符!

String s = Character.toString('');System.out.println(s.length()); // "1"assert s.charAt(0) == 0;

它还 DOES NOT
如果你希望空字符终止字符串工作。从上面的代码片段可以明显看出,但是JLS(10.9。字符数组不是String)中也明确指定了它:

在Java编程语言中,与C不同,of的数组

char
不是a
String
,并且a
String
或of的数组都不
char
以“
u0000”(NUL字符)终止。


这是时髦人物的罪魁祸首吗?

现在,我们谈论的是完全不同的事情,即字符串如何在屏幕上呈现。事实是,甚至是“ Hello world!”
如果您使用dingbats字体,它将看起来很时髦。unipre字符串在一种语言环境中看起来可能很时髦,而在另一种语言环境中却看起来很时髦。即使是正确渲染的包含汉字的unipre字符串,对于格陵兰岛的人来说仍然看起来很时髦。

也就是说,无论如何,空字符都可能看起来很时髦。通常它不是您要显示的字符。就是说,由于空字符不是字符串终止符,因此Java能够以一种或另一种方式处理它。


现在要解决我们假定的预期效果,即从字符串中删除所有句点,最简单的解决方案是使用

replace(CharSequence,CharSequence)
重载。

System.out.println("A.E.I.O.U".replace(".", "")); // AEIOU

replaceAll
这里也提到了该解决方案,但是该解决方案可与正则表达式一起使用,这就是为什么您需要转义点元字符的原因,并且可能会更慢。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609471.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号