【问题标题】:How to replace string with another string by index? [closed]如何通过索引将字符串替换为另一个字符串? [关闭]
【发布时间】:2013-11-15 14:38:27
【问题描述】:

我有一个这样的字符串 - 2013 年 11 月 15 日。 我想用 2000 替换 2013 (最后 2 位数字为 0)。如何做到这一点?

【问题讨论】:

  • String.replace(...) ?
  • 但是 (...) 中的参数是什么?有没有直接用索引替换字符串的方法?
  • 也许只有我一个人,但似乎你应该了解一下你正在编程的语言。我希望这些是家庭作业问题,你不会因此得到报酬......我建议你将此添加为书签:docs.oracle.com/javase/7/docs/api,并在遇到问题时将其作为您的第一站。我们很乐意帮助解决合法问题,但不是琐碎的事情。而且你的代表会受到更少的点击......
  • 值得注意的是,字符串是不可变的(无法更改),因此您实际上会得到一个更改了这些字符的新字符串

标签: java replace


【解决方案1】:

你总是可以替换date.replace("13", "00");

但是,如果您正在查看解决方案的通用内容(如果您不知道最后 2 位数字是什么,但您希望它们为“00”),您可以执行以下操作:

String date = "11/15/2013";
String newDate = date.substring(0,8)+"00";

或者您可以使用 StringBuilder:

StringBuilder date = new StringBuilder("11/15/2013");
date.setCharAt(8, '0');
date.setCharAt(9, '0');

StringBuilder date = new StringBuilder("11/15/2013");
date.replace(8, 10, "00");

【讨论】:

  • 是的,这就是答案..:)
  • @G.Madri 如果有用请采纳,这样对别人也有帮助。
【解决方案2】:

代码sn-p

String date = "11/15/2013";
String replaced = date.replace("2013","2000");

【讨论】:

    【解决方案3】:

    如果你真的想替换String的某个索引处的序列,请使用StringBuilder

    String replaced = new StringBuilder(date)
        .replace(8, 10, "00").toString();
    

    【讨论】:

    • 我正在获取系统时间并将其替换为 2000 年。所以我不知道系统时间的年份。这是我真正想要的 :)
    • 很好。旁注:确保年份的位置永远不会改变 - 即日期和月份应始终为两位数(例如,“07/03”表示 3 月 7 日)。
    【解决方案4】:
     String date = "11/15/2013";
     System.out.println(date.substring(0, date.length()-2).concat("00"));
    

    这是你要找的吗?

    【讨论】:

      【解决方案5】:

      更好的代码sn-p

      String replaced = date.replace("11/15/2013.","11/15/2000");
      

      【讨论】:

        猜你喜欢
        • 2021-12-01
        • 1970-01-01
        • 2023-03-30
        • 2015-01-26
        • 1970-01-01
        • 2016-02-21
        • 2011-12-21
        • 2019-05-14
        • 1970-01-01
        相关资源
        最近更新 更多