为什么StringTokenizer无法正常使用$$作为分隔符

aga*_*era 0 java string tokenize stringtokenizer

我正在用StringTokenizer字符串标记一个字符串,$$但是如果我的字符串是这样的$1$dga74话,那么它首先将它标记化$.任何人都可以告诉我为什么会发生这种情况,我该怎么做才能解决这个问题.

String str="/getCPage.asp?m=total&sub=$1$dga74$$/getEpage.asp?m=tatal&sub=0";
StringTokenizer tok=new StringTokenizer(str,"$$")
String url1=tok.nextToken();
String url2=tok.nextToken();
Run Code Online (Sandbox Code Playgroud)

dac*_*cwe 8

delim参数中的每个字符都被视为分隔符.如果指定"$$"指定$两次(忽略第二个).

要解决您的问题,您可以使用Scanner:

public static void main(String[] args) {

    String s = "/getCPage.asp?m=total&sub=$1$dga74$$/getEpage.asp?m=tatal&sub=0";

    Scanner scanner = new Scanner(s);
    scanner.useDelimiter("\\$\\$");

    System.out.println(scanner.next());
    System.out.println(scanner.next());
}
Run Code Online (Sandbox Code Playgroud)

输出:

/getCPage.asp?m=total&sub=$1$dga74
/getEpage.asp?m=tatal&sub=0
Run Code Online (Sandbox Code Playgroud)