加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用replace all的字符串索引超出范围

发布时间:2020-12-15 04:23:45 所属栏目:Java 来源:网络整理
导读:如何替换包围的mapDir?到一定的字符串? String mapDir = "D:mappingspecialiststs_gpc"; String test = "foo: mapDir -bar"; println(test.replaceAll("mapDir",mapDir)); 上面给出了一个StringIndexOutOfBoundsException. 以下代码对我来说,但我
如何替换<>包围的mapDir?到一定的字符串?

String mapDir = "D:mappingspecialiststs_gpc";
  String test = "foo: <mapDir> -bar";
  println(test.replaceAll("<mapDir>",mapDir));

上面给出了一个StringIndexOutOfBoundsException.

以下代码对我来说,但我认为纯java也必须正常工作.

static String replaceWord(String original,String find,String replacement) {
    int i = original.indexOf(find);
    if (i < 0) {
        return original;  // return original if 'find' is not in it.
    }

    String partBefore = original.substring(0,i);
    String partAfter  = original.substring(i + find.length());

    return partBefore + replacement + partAfter;
}

解决方法

你不需要replaceAll方法,因为你没有使用正则表达式.相反,你可以使用如下的替换api:

String mapDir = "D:mappingspecialiststs_gpc";
String test = "foo: <mapDir> -bar";
System.out.println(test.replace("<mapDir>",mapDir));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读