2014-08-29 1 views
0

단어 수를 계산해야합니다. ":"문자 ">"로부터 시작이android에있는 문자 계산하기

예를 들어

:이 라인을 가지고 : > 사용자는 말한다 : 안녕하세요 사람들이 내가에서 시작 선택의 합계를 계산하는 방법을 궁금해

"> "마무리": "

는 사실, 자바 내 코드는 다음과 같습니다

String groupMessage = new String("> User says : Hi people"); 
String search = new String(">"); 


TextView groupMessageBox = (TextView) this 
     .findViewById(R.id.groupMessageBox); 

Spannable WordtoSpan = new SpannableString(groupMessage); 

int length = search.length(); 
String input = WordtoSpan.toString(); 
int startIndex = input.indexOf(search); 
while(startIndex > length) 
{ 
    WordtoSpan.setSpan(new ForegroundColorSpan(Color.rgb(140, 117, 189)), startIndex, startIndex + length, 
      Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    WordtoSpan.setSpan(new StyleSpan(Typeface.BOLD), startIndex, startIndex + length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    startIndex = input.indexOf(search, startIndex + length); 
} 
groupMessageBox.setText(WordtoSpan); 

누군가가 나를 도울 수 있습니까? 인사말

+0

@ FrankN.Stein 죄송합니다. ":"라고 말하고 싶습니다. – Adrian

+0

단어 나 문자를 세어보고 싶습니까? 나는 당신의 제목 (문자)에 대한 나의 대답을 기반으로했지만, 지금은 그 내용이 단어를 세는 것과 관련되어 있음을 알았습니다. –

+0

사이드 노트 : 자바 변수가'camelCase'인지 확인하십시오. 그래서'WordToSpan'은'wordToSpan'이어야합니다. 그렇지 않으면 클래스 이름이라고 가정합니다. –

답변

0
int start = groupMessage.indexOf(">") + 1; 
int end = groupMessage.indexOf(":") - 1; 
int numWords = groupMessage.substring(start, end).split("\\s+").length; 

이 코드는 단지 ">"처음 걱정하고 있다고 가정

+0

첫 번째 문장에서 말하는 단어 수를 계산한다고 가정합니다. 그러나 나는 그 제목이 등장 인물에 관한 것이라고 생각했다. – jk47

+1

'substring' (소문자)이어야하고 닫는';'이 없습니다. –

+0

@Duncan 감사합니다. IDE에 너무 많이 의존 할 때 얻을 수있는 것입니다! – jk47

1

이 작동합니다 :

int length = groupMessage.indexOf(":") - groupMessage.indexOf(">") - 1; 

IT는 >: 사이의 공백을 포함하여 모든 문자를 계산합니다. ":"와서, 항상 ">"뒤에 공백이 있고 전에 ":"

관련 문제