teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

発想を変換

2016/05/10 17:03

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -1,1 +1,22 @@
1
- 正規表現を使ってreplaceAllが一番簡単ですかね。
1
+ 正規表現を使ってreplaceAllが一番簡単ですかね。
2
+
3
+ あるいは発想を変えて、")"を先に探します。そしてその位置より前の"("を探し、間を削除。これを繰り返します。
4
+ ```java
5
+ public class Q34529 {
6
+
7
+ public static void main(String[] args) {
8
+ String string = "あ(い(うえ))お";
9
+ string = string.replaceAll("(", "(").replaceAll(")", ")");
10
+ StringBuilder builder = new StringBuilder(string);
11
+ while (true) {
12
+ int end = builder.indexOf(")") + 1;
13
+ int start = builder.lastIndexOf("(", end);
14
+ if (start < 0) break;
15
+ builder.delete(start, end);
16
+ }
17
+ System.out.println(builder);
18
+ }
19
+
20
+ }
21
+
22
+ ```