Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何标记括号?_Java_String_Stack_Stringtokenizer - Fatal编程技术网

Java 如何标记括号?

Java 如何标记括号?,java,string,stack,stringtokenizer,Java,String,Stack,Stringtokenizer,我使用了StringTokenizer,如下所示,并期望它实际分离每个括号,但它将所有内容都作为一个标记。我如何标记它们 Stack<String> a=new Stack<>(); String S = "{[()()]}"; String temp=""; StringTokenizer str=new StringTokenizer(S); while (str.hasMoreTokens()){ temp=s

我使用了
StringTokenizer
,如下所示,并期望它实际分离每个括号,但它将所有内容都作为一个标记。我如何标记它们

    Stack<String> a=new Stack<>();
    String S = "{[()()]}";
    String temp="";
    StringTokenizer str=new StringTokenizer(S);
    while (str.hasMoreTokens()){
        temp=str.nextToken();
        a.push(temp);
    }
Stack a=新堆栈();
字符串S=“{[()()]}”;
字符串temp=“”;
StringTokenizer str=新的StringTokenizer;
while(str.hasMoreTokens()){
temp=str.nextToken();
a、 推动(温度);
}
如果您尝试

StringTokenizer st = new StringTokenizer("[[]{}[[]]()]","[]{}()");
while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}
在标记字符串时,它将返回空,但在标记所有括号之后,就没有其他内容了。如果您改为尝试:

StringTokenizer st = new StringTokenizer("[[a]{b}[[c]d]()]","[]{}()");
您将得到一个b c d-标记化值

现在,如果您想保留括号,我建议使用lookahead和lookback正则表达式:

StringTokenizer st = new StringTokenizer(z,"[]{}()");
String regEx "(?<=[{}()\\[\\]])|(?=[{}()\\[\\]])";
System.out.println(Arrays.toString(z.split();
StringTokenizer
是一个遗留类,出于兼容性原因保留它,尽管在新代码中不鼓励使用它。建议寻求此功能的任何人改用
String
split
方法或java.util.regex包。
StringTokenizer st = new StringTokenizer(z,"[]{}()");
String regEx "(?<=[{}()\\[\\]])|(?=[{}()\\[\\]])";
System.out.println(Arrays.toString(z.split();
[[, [, a, ], {, b, }, [, [, c, ], d, ], (, ), ]]