猿问

如何标记括号?

我使用StringTokenizer如下并期望它实际上将每个支架分开,但它全部作为标记。我如何标记它们?


    Stack<String> a=new Stack<>();

    String S = "{[()()]}";

    String temp="";

    StringTokenizer str=new StringTokenizer(S);

    while (str.hasMoreTokens()){

        temp=str.nextToken();

        a.push(temp);

    }


UYOU
浏览 154回答 2
2回答

人到中年有点甜

// write all symbols you want here on stStringTokenizer st = new StringTokenizer(str, "@!");String s = "Hello, i am using Stack Overflow;";System.out.println("s = " + s);String delims = " ,;";StringTokenizer tokens = new StringTokenizer(s, delims);while(tokens.hasMoreTokens())System.out.println(tokens.nextToken());

呼啦一阵风

如果你试试StringTokenizer st = new StringTokenizer("[[]{}[[]]()]","[]{}()");while (st.hasMoreTokens()) {&nbsp; &nbsp; System.out.println(st.nextToken());}它将返回空,因为它正在对字符串进行标记,但在对所有括号进行标记后没有任何其他内容。如果您改为尝试:StringTokenizer st = new StringTokenizer("[[a]{b}[[c]d]()]","[]{}()");你会得到 abcd - 标记化的值。现在,如果你想把括号留在那里,id 推荐前瞻和回顾正则表达式:StringTokenizer st = new StringTokenizer(z,"[]{}()");String regEx "(?<=[{}()\\[\\]])|(?=[{}()\\[\\]])";System.out.println(Arrays.toString(z.split();这将返回:[[, [, a, ], {, b, }, [, [, c, ], d, ], (, ), ]]
随时随地看视频慕课网APP

相关分类

Java
我要回答