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

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

公开课考试{

public static void main(String[] args) {

    String str = "My CID is #encode2#123456789#encode2# I am from India";

    String[] tokens = str.split("#encode2#");

    for (int i = 0; i < tokens.length; i++) {
        // prints the tokens
        System.out.println(tokens[i]);
    }
}

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

a7qyws3x

a7qyws3x1#

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

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

unguejic2#

public String getToken() {

        String str = "My CID is #encode2#123456789#encode2# I am from India";

        int start = str.indexOf("#encode2#") + "#encode2#".length();
        int end = str.lastIndexOf("#encode2#");

        return str.substring(start, end);
    }

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

相关问题