有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓中的java字符计数

我需要数数单词。从字符“>;”开始致“:”

例如:我有一行:>;用户说:大家好

我想知道如何计算从“>;”开始的选择总数并完成“:”

实际上,我的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);

有人能帮我吗?问候


共 (2) 个答案

  1. # 1 楼答案

    这应该是有效的:

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

    它统计>:之间的每个字符(包括空格)

  2. # 2 楼答案

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

    此代码假定您只关心第一次“>;”和“:”上来,在“>;”后面总是有一个空格在“:”之前