为了账号安全,请及时绑定邮箱和手机立即绑定

如何标记括号?

如何标记括号?

UYOU 2021-08-25 15:04:32
我使用StringTokenizer如下并期望它实际上将每个支架分开,但它全部作为标记。我如何标记它们?    Stack<String> a=new Stack<>();    String S = "{[()()]}";    String temp="";    StringTokenizer str=new StringTokenizer(S);    while (str.hasMoreTokens()){        temp=str.nextToken();        a.push(temp);    }
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

// write all symbols you want here on st

StringTokenizer 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());


查看完整回答
反对 回复 2021-08-25
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

如果你试试


StringTokenizer st = new StringTokenizer("[[]{}[[]]()]","[]{}()");

while (st.hasMoreTokens()) {

    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, ], (, ), ]]


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信