str.replace怎么用,replaceFirst
00-1010使用replaceFirst坑一坑二字符串类的ReplaceFirst方法不好用的原因是代码一和代码二
00-1010公司项目最近有开发填空题的需求。经过思考和分析,决定通过SpannableString来实现。在这个过程中,
replaceFirst给了我两个坑:
00-1010通过UnderlineSpan给填空位置加下划线,通过ClickableSpan设置填空位置的显示器。点击滑动线,调出带输入框的对话框,输入内容,用空格替换。
UnderlineSpan在某些手机上无法给空格加下划线,所以在填充位置的开头和结尾加了一对括号。
在将输入值赋到空处出现问题
例如:
内容=我是# #人,我爱# #;第一价值=中国;在经历了下面的代码之后:
content=content . replace first(yh answer。分隔符,"(" first value "));内容变成了我是(中国人,我爱# #);期望值是我(中国人)我爱# #
不知道是不是bug。我研究了很久,认为是支架造成的。换成其他符号甚至汉字还是一样的,只是没有括号很正常。
最后,原因是后面的参数是拼接的,改成下面的就没问题了。
=( fisrtValue )之前的字符串;content=content . replace first(yh answer。分隔符,之前);
00-1010在输入过程中,不可避免的会输入特殊符号。当输入$ number时,$ number在replaceFirst之后消失。
例如:
内容=我是# #人,我爱# #;FirstValue=China $ $在经历了下面的代码之后:
=( fisrtValue )之前的字符串;content=content . replace first(yh answer。分隔符,之前);内容变成了我是(中国人)我爱# #);期望值是我来自(中国$ $)我爱# #
如果需求允许,可以直接屏蔽$;如果没有,需要添加转义字符;
00-1010今天我们只是用String的replace方法替换了下面的AND。结果我们发现无论从哪方面都不行,于是做了一个实验。
目录
String str=新字符串(和aae 112 );str.replaceFirst(AND , );system . out . println(str);和AAE112
replaceFirst使用时的注意事项
String str=新字符串(和aae 112 );string out=str . replace first( AND , );system . out . println(out);AAE112说明代码2的结果是正确的,所以replaceAll不改变原来的str,这和PB、PL/SQL是不同的。原因应该是字符串指向一个地址。
以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。