【问题标题】:Substring: get index of "or" occurrence in string子字符串:获取字符串中出现“或”的索引
【发布时间】:2023-03-11 01:45:02
【问题描述】:

我怎样才能substring下面String中的第三个号码:

String val = "2020202030 or 303030303 or 303033303"; 

两个数的解法如下:

String val = "2020202030 or 303030303

firstNumber = val.substring(0,val.indexOf("or")-1);
secondNumber = val.substring(val.indexOf("or") + 3,val.length());

但是如何获取下面String 中第二个“或”的索引呢?

String val = "2020202030 or 303030303 or 303033303";

firstNumber = val.substring(0,val.indexOf("or")-1);
secondNumber = val.substring(val.indexOf("or")-1,<index of second or >?);
thirdNumber= val.substring(<index of second or>?,val.length());

【问题讨论】:

    标签: java android


    【解决方案1】:

    使用拆分:

    String[] numbers = val.split(" or ");
    

    numbers[2] 将包含第三个数字。

    如果您更喜欢使用indexOf 来获取第二个“或”的索引,请使用int indexOf(String str, int fromIndex) 变体。

    【讨论】:

      【解决方案2】:

      你可以看到这个答案:https://stackoverflow.com/a/5034592/2668213

      然后稍微详细说明一下。例如

      int n_occurrences = 0
      
      for (int index = val.indexOf("or");
           index >= 0;
           index = val.indexOf("or", index + 1))
      {
          n_occurrences++;
          if (n_occurrences=2) 
             System.out.println(index);
      }
      

      【讨论】:

      • Eran 的回答要好得多。用那个。 :)
      【解决方案3】:
      String val = "2020202030 or 303030303 or 303033303";
      
      String[] arr = val.split(" or ");
      
      System.out.println(arr[0]); //2020202030
      
      System.out.println(arr[1]); //303030303
      
      System.out.println(arr[2]); //303033303
      

      【讨论】:

      • 想解释一下为什么它回答了这个问题?
      • 上面我使用了java的split函数,它返回数组,所以当我们用“或”分割上面的字符串时,我们得到上面的数组格式的字符串,第一个元素是“2020202030”等等
      猜你喜欢
      • 2019-07-22
      • 2011-11-21
      • 2012-09-14
      • 1970-01-01
      • 2021-07-19
      • 2022-11-23
      • 2021-03-30
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多