마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

하나의 String 값에서 특정 부분을 추출하는방법이 궁금합니다.

0 추천

Spanned 로 위치값을 지정시키는 방법 말구요.

String test = "!123 !234 테스트 !123"

이런 스트링값이 있다고 쳤을 시,

시작값 ! 와 마지막값 공백 사이까지 포함된 문자열에 효과(색상/크기등등) 을 주고 싶은데 서치에 한계를 부딪쳤네요.

 ! 이것과 공백 사이에 포함된 문자는 (! 와 공백포함) 크기변경 및 색상(빨간색) 이라고 쳤을 시,

결과는

!123 !234 테스트 !123

이런식이 되야됩니다... 해결책좀 부탁드립니다~

콜벳 (7,150 포인트) 님이 2016년 2월 2일 질문

1개의 답변

0 추천
 
채택된 답변
split 을 " " 공백으로 나누고 startsWith 가 "!" 인 문자에 컬러를 넣어보세요
aucd29 (218,390 포인트) 님이 2016년 2월 2일 답변
콜벳님이 2016년 2월 3일 채택됨
String[] test = text.split(" ");
                             
                                for (int i = 0; i < test.length; i++){
                                    boolean atest = test[i].startsWith("!");
                                    if (atest){
                                        Log.i("!!!true");                             
                                    }else{
                                        Log.i("!!!flase");
                                    }
                                }

현재 이런식으로 ! 가 있을 시와 없을 시에 트루 펄스 값 까진 했는데요.
해당 문자열 즉,  test[0] = !123 , test[1] = !234 , test[2] = 테스트 test[3] = !123
값이 들어갈텐데 이에 해당되는 값에 컬러 속성을 어떤방식으로 넣어줄 수 있나요..?
어레이리스트에 담아서 해봤는데 해답이 안나오네요 ㅠㅠ 답변감사드구 다시한번 부탁드립니다
szColorTest = "<font color='red'>" + test[i] + "</font>";

yourText.setText(Html.fromHtml(szColorTest));
식으로 하면 됩니다.

red 가 안먹으면 #ff0000 식으로 넣어보세요
감사합니다 해결됐습니다 좋은 답변 다시한번 감사드립니다.

String[] test = text.split(" ");
ArrayList<String> arrayList = new ArrayList<String>();
      for (int i = 0; i < test.length; i++){
          boolean atest = test[i].startsWith("#");
          String[] szColorTest = {"<font color='#ac66bc'>" + test[i] + "</font>" , "<font color='#000000'>" + test[i] + "</font>"};
               if (atest){
               Log.i("!!!true");
               arrayList.add(szColorTest[0]);
               }else{
               Log.i("!!!false");
               arrayList.add(szColorTest[1]);
               }
          textview.setText(Html.fromHtml(arrayList.toString().replace("," , "").replace("]","").replace("[","")));
   }
...