【问题标题】:Split operating without concating [closed]无需连接的拆分操作[关闭]
【发布时间】:2019-04-03 08:21:55
【问题描述】:

我有一个字符串“OR-xxxxxxxx-001-01”。 我需要将其拆分为“OR-xxxxxxx-001”和“01”。是否可以不用'-'拆分并再次连接??

【问题讨论】:

  • 另一个零去哪儿了? -01-001?
  • Java 还是 Javascript?有很大的不同。
  • 您可以通过拆分向您的代码展示您是如何做到的,然后请求如何改进它!
  • 考虑到 1) OP 没有自己做任何工作来解决这个问题,我对答案的数量感到惊讶,并且 2) 我们不知道 OP 希望代码使用哪种语言。
  • OP:您可能会发现阅读网站help sectionasking a good question 很有用。为了获得您问题的最佳答案,我们希望看到 a) 您首先尝试自己解决问题,并且 b) 使用 minimal reproducible example 来缩小问题范围。要求 SO 为您完成所有工作对您或我们都没有帮助。 Here's a question checklist you might find useful..

标签: javascript java


【解决方案1】:

在 Java 中,使用 lastIndexOf:

String string = "OR-xxxxxxxx-001-01";
int lastDash = string.lastIndexOf('-');

String prefix = string.substring(0, lastDash);  // OR-xxxxxxx-001
String suffix = string.substring(lastDash + 1); // 01

【讨论】:

    【解决方案2】:

    此解决方案适用于 JavaScript(Java 和 JavaScript 不是一回事)。

    由于您不想拆分 - 可以使用索引进行拆分。您尚未指定它是否为固定长度(此解决方案取决于此),但这应该可以解决问题:

    t = 'OR-xxxxxxxx-001-01'
    str = t.slice(0, 12) + t.slice(16);
    

    会给str = 'OR-xxxxxxxx-01'

    【讨论】:

      【解决方案3】:

      您可以使用具有正向预测的拆分:

      String str = "OR-xxxxxxxx-001-01";
      String[] split = str.split("-(?=[^-]+$)");
      
      • [^-]- 以外的任何字符。
      • +:重复一次或多次
      • $: 在字符串的末尾
      • 然后(?= ... ) 用于正向预测,因此不会被拆分删除。这意味着只有括号外的 - 充当分隔符。

      Try it online.

      PS:在 Java 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-06
        • 2013-06-08
        • 2016-08-10
        • 2013-03-21
        • 2015-07-12
        • 2013-12-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多