回答編集履歴

1

追記

2017/12/14 16:16

投稿

keicha_hrs
keicha_hrs

スコア6766

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  sb.replace(4, 5, "う");
12
12
 
13
- sb.replace(5, 6, "う");
13
+ sb.replace(5, 6, "う"); // この部分の装飾は維持される
14
14
 
15
15
  sb.replace(6, 7, "う");
16
16
 
@@ -21,3 +21,7 @@
21
21
 
22
22
 
23
23
  replaceで装飾部分と非装飾部分を横断するような範囲指定をすると、setSpanで設定したフラグ(Spanned.SPAN_INCLUSIVE_INCLUSIVEのような)次第で、replaceした全てが装飾されるか、replaceした全ての装飾が解除されるか、いずれかになってしまうようですね。ですから、この場合は1文字ずつreplaceするしかない、という感じみたい。
24
+
25
+
26
+
27
+ もっと良い方法があるかもしれないけど、思いつきませぬ。