我想从字符串中删除所有“未配对”或未配对的括号。
exampleStr = back-pay) zyzhk1219(17) zyzhk1329 zyzhk1595(15) zyzhk1988 zyzhk2004 zyzhk2131) jswioj((testsjkldf
预期的“括号平衡”字符串应为
back-pay zyzhk1219(17) zyzhk1329 zyzhk1595(15) zyzhk1988 zyzhk2004 zyzhk2131 jswiojtestsjkldf
我在stackoverflow上看到了一些基于ruby的解决方案。但是,找不到我可以在Java中使用的代码。
最佳答案
如何用伪代码完成:
initialize parenLevel = 0
for each character in string
if char is ( increment parenLevel
if char is )
if parenLevel = 0, remove bad paren
else, decrement parenLevel
next
initialize parenLevel = 0
for each character in string in reverse
if char is ) increment parenLevel
if char is (
if parenLevel = 0, remove bad paren
else, decrement parenLevel
next
在实践中如何实现:http://ideone.com/K3s0X
样本结果:
back-pay zyzhk1219(17) zyzhk1329 zyzhk1595(15) zyzhk1988 zyzhk2004 zyzhk2131 jswiojtestsjkldf