I want to remove all the "unpartnered" or unpaired parenthesises from a string.
exampleStr = back-pay) zyzhk1219(17) zyzhk1329 zyzhk1595(15) zyzhk1988 zyzhk2004 zyzhk2131) jswioj((testsjkldf
The expected "parenthesis balanced" string should be
back-pay zyzhk1219(17) zyzhk1329 zyzhk1595(15) zyzhk1988 zyzhk2004 zyzhk2131 jswiojtestsjkldf
I saw some ruby based solution on stackoverflow. But, couldn't find one I can use in java.
How it might be done in pseudo-code:
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
How it might be implemented in practice: http://ideone.com/K3s0X
Sample result:
back-pay zyzhk1219(17) zyzhk1329 zyzhk1595(15) zyzhk1988 zyzhk2004 zyzhk2131 jswiojtestsjkldf