从言语比较文本在文本视图中的文本

问题描述 投票:-2回答:3

应用简述

用户看到,有一个字一个TextView。用户会点击一个按钮,将触发语音到文本的API,并说对的TextView所给词。现在我需要匹配的语音文本中的TextView文本。

在文本视图假设文本是“你好,你怎么样”

从语音到文本的文本API是“你好你怎么样”

我知道我们可以像匹配

if (string1.equals(string2)){

}

但我不希望像匹配整个字符串。我想通过一个一个串的每个字符相匹配。

如果匹配的字符的字符匹配的颜色,然后将其他绿色IT将是红色。

android speech-to-text
3个回答
0
投票

签出,像这样的东西来到了:

String viewText = textview.getText();
String spokenText; //define yourself

for (int i = 0; i <= viewText.length(); i++) {
    char letter = viewText.charAt(i);
    char spokenLetter = spokenText.charAt(i);
    if(letter==spokenLetter) {
       //proceed further
    }
    else { 
        // return false
    }
}

0
投票

你可以在你的XML空的线性布局,水平方向,并在不同的TextView forexample像比较后动态添加的每个字母:

LinearLayout layout = (LinearLayout) findViewById(R.id.your_linear_layout);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
int i = 0;
for(char a: string1.toCharArray()){
char b = string2.charAt(i);
TextView tv = new TextView(this);
if(a == b){
tv.setText(String.valueOf(a);
tv.setColor(Color.GREEN);
tv.setLayoutParams(params);
layout.addView(tv);
}else{
tv.setText(String.valueOf(a);
tv.setColor(Color.RED);
tv.setLayoutParams(params);
layout.addView(tv);
}
i++;
}

-1
投票

你可以通过一个字符串迭代并检查每个字符的方式。

using System;

class Program
{
    static void Main()
    {
        const string s = "peace";
        foreach (char c in s)
        {
            Console.WriteLine(c);
        }
        for (int i = 0; i < s.Length; i++)
        {
            Console.WriteLine(s[i]);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.