如何用特定的开始和结束分隔符分割字符串?

izkcnapc  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(982)

公开课考试{

  1. public static void main(String[] args) {
  2. String str = "My CID is #encode2#123456789#encode2# I am from India";
  3. String[] tokens = str.split("#encode2#");
  4. for (int i = 0; i < tokens.length; i++) {
  5. // prints the tokens
  6. System.out.println(tokens[i]);
  7. }
  8. }

}
输出将是我的cid是123456789我来自印度
但是我只想要整个字符串中的123456789,我想用123456789数字来加密。
我还使用if(!”#encode2#“.equals(text))条件,但仍无法获得输出。
如何编写条件,如需要从#encode2#右侧开始,在#encode2#之前结束。

a7qyws3x

a7qyws3x1#

使用字符串 indexOf 以及 lastIndexOf 方法找到两个 #encode2# 子字符串开始。然后,使用 substring 获取这两个索引之间的字符串。

  1. String str = "My CID is #encode2#123456789#encode2# I am from India";
  2. String substring = "#encode2#";
  3. int firstIdx = str.indexOf(substring);
  4. int secondIdx = str.lastIndexOf(substring);
  5. System.out.println(str.substring(firstIdx + substring.length(), secondIdx)); //123456789
unguejic

unguejic2#

  1. public String getToken() {
  2. String str = "My CID is #encode2#123456789#encode2# I am from India";
  3. int start = str.indexOf("#encode2#") + "#encode2#".length();
  4. int end = str.lastIndexOf("#encode2#");
  5. return str.substring(start, end);
  6. }

注意:此方法仅在字符串值中有两次“#encode2#”时有效。如果您需要多个令牌示例,则这不起作用。

相关问题