回答編集履歴

1

発想を変換

2016/05/10 17:03

投稿

swordone
swordone

スコア20651

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