【问题标题】:Remove Substring from the Original String [duplicate]从原始字符串中删除子字符串[重复]
【发布时间】:2019-08-01 10:18:28
【问题描述】:

我正在尝试从原始字符串中删除子字符串

代码尝试:

String details = events.event_details.value[bi];
String details2 ="";
if(details.length()>70) {
    details2 = details.substring(70);
    details.replaceFirst(details2, " ");
}

【问题讨论】:

  • 请注意,String 是不可变的,details.replaceFirst(details2, " ") 根本不会改变 details
  • 所以你要取一个字符串,如果超过70个字符,把前70个字符改成空格?
  • 嗨@lgrimes12 欢迎来到SO。我建议将来发布一个实际问题,因为我没有看到任何问号。还请提供一些有关您需要完成的内容的背景信息,例如你需要返回修改后的字符串吗?您需要用空格替换还是删除?等等。请浏览该网站,以了解良好的问题和答案。
  • @Niccolò 好 *问题

标签: java string substring


【解决方案1】:

你没有删除它,你用空格覆盖它...... remove 就是:砍掉它! 替换:替换它!

details2 = details.substring(61, 70);

这会给你 10 个字符

details2 = details.substring(details.length-10, details.length);

最后 10 个

如果你想要60个空格,然后是最后10个,你需要创建一个60个空格的字符串,然后使用上面的方法提取你想要的任何内容

也许为此使用 StringBuffer...

StringBuffer strg = new StringBuffer();
String cut = details.substring(details.length-10, details.length);
IntStream.iterate(0, i -> i++).limit(60).forEach((a) -> strg.append(" "));
strg.append(cut);
System.out.println(strg.toString());

【讨论】:

    【解决方案2】:

    您必须将结果从 replaceFirst(...) 保存在某个地方, 再次详细举例:

    details = details.replaceFirst(details2, "");
    

    【讨论】:

      【解决方案3】:

      你可以试试这个方法-

          String details2 ="";
          String result = ""
      
          if(details.length()>70) {
              details2 = details.substring(70);
              result = details.replaceFirst(details2, " ");
          }
      
      System.out.println(result);
      

      这里需要一个 String 变量,其中包含替换的结果

      【讨论】:

        猜你喜欢
        • 2018-02-20
        • 2020-11-12
        • 2018-04-01
        • 2018-06-09
        • 1970-01-01
        • 2021-04-13
        • 1970-01-01
        • 2012-04-08
        • 1970-01-01
        相关资源
        最近更新 更多