2014-08-29 51 views
0

我需要計算單詞。 「:」從字符「>」來啓動在android中計數字符

例如:我有這樣一行:>用戶說:嗨,人

我不知道我怎麼能算總選擇它開始「> 「和完成 」:「

其實,我在Java代碼中有:

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 2014-08-29 13:41:41

+0

你想要數字或字符嗎?我根據你的標題(人物)回答了我的答案,但現在我注意到這些內容涉及計算單詞。 – 2014-08-29 13:51:01

+0

附註:確保你的Java變量是'camelCase'。所以'WordToSpan'應該是'wordToSpan',否則我們會認爲它是一個類名。 – 2014-08-29 13:52:06

回答

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

此代碼假定您只關心在第一時間「>」和「:」來了,而且總是有「>」後面輸入一個空格和之前的「:」

+0

這假設你想要計算單詞,這是你的第一句話所說的。但是我只注意到標題是關於字符的。 – jk47 2014-08-29 13:50:25

+1

應該是'substring'(小寫),再加上你錯過了一個關閉';'。 – 2014-08-29 13:52:30

+0

@Duncan謝謝,這就是你過分依賴IDE時所得到的結果! – jk47 2014-08-29 14:05:21

1

這應該工作:

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

它計數>:之間的每一個字符(含空格)。