永发信息网

java的replaceFirst

答案:2  悬赏:70  手机版
解决时间 2021-03-15 22:19
  • 提问者网友:浪荡绅士
  • 2021-03-15 09:14
java的replaceFirst
最佳答案
  • 五星知识达人网友:人间朝暮
  • 2021-03-15 10:07
replaceFirst表示的是替换第一个满足条件的字符串为另外一个字符串。
replaceFirst和replaceAll意义相近,只是replaceAll替换所有匹配,replaceFirst只替换第一个匹配,如:
"ababab".replaceAll("a","c") ;
结果就是:"cbcbcb"。
"ababab".replaceFirst("a","c");
结果就是: "cbabab"。
全部回答
  • 1楼网友:忘川信使
  • 2021-03-15 10:19
报错的行你可以跟进去看下源码:
它的源码是这样的:
int cursor = 0;
char nextChar = replacement.charAt(cursor);
if (nextChar == '\\') {
cursor++;
nextChar = replacement.charAt(cursor);
result.append(nextChar);
cursor++;
其中replacement为"\\",开始这个nextChar 会得到是'\',其实是'\\'它==‘\\’,进入条件,再次执行
replacement.charAt(1)的时候报错。因为字符串"\\".length()是1,所以越界了。你想替换成"\"需要改成System.out.println("?".replaceFirst("\\?", "\\\\"));
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯