【问题标题】:String array list to text view to display it字符串数组列表到文本视图以显示它
【发布时间】:2018-02-11 19:41:01
【问题描述】:

如何将这个数组列表串到一个文本视图中,以便在 tts 上使用它?尝试了很多代码但并没有真正起作用,我对 android studio 真的很陌生,所以我可能听起来很新。 下面是我的数组列表代码!

private String getEmotion(RecognizeResult res) {
    List<Double> list = new ArrayList<>();
    Scores scores = res.scores;

    list.add(scores.anger);
    list.add(scores.happiness);
    list.add(scores.contempt);
    list.add(scores.disgust);
    list.add(scores.sadness);
    list.add(scores.neutral);
    list.add(scores.surprise);
    list.add(scores.fear);

    //sort list
    Collections.sort(list);

    double maxNum = list.get(list.size()  -1);

    if(maxNum == scores.anger)
        return "Anger";
    else if(maxNum == scores.happiness)
        return "Happiness";
    else if(maxNum == scores.contempt)
        return "Contempt";
    else if(maxNum == scores.disgust)
       return "Disgust";
    else if(maxNum == scores.sadness)
        return "Sadness";
    else if(maxNum == scores.neutral)
        return"Neutral";
    else if(maxNum == scores.surprise)
        return "Surprise";
    else if(maxNum == scores.fear)
        return "Fear";
    else
        return "Can't Detect";
}

【问题讨论】:

  • 你是什么意思'将这个数组列表串到一个文本视图,以便我可以在 tts 上使用它'?什么是识别结果?什么是分数?

标签: java arrays list


【解决方案1】:

我认为你的问题是不正确的双值比较:double == double 在一般情况下无法正常工作;比较双精度的正确方法是Double.compare(double, double) == 0

如果您将所有操作(如 maxNum == scores.anger 替换为 Double.compare(maxNum, scores.anger) == 0),我认为您的代码会正常工作。

此外,我可以为您提供一种简化此代码的方法:

private static final class Data {
    double maxNum = Double.MIN_VALUE;
    String emotion = "Can't Detect";

    void applyMax(double score, String emotion) {
        if (Double.compare(score, maxNum) > 0) {
            maxNum = score;
            this.emotion = emotion;
        }
    }
}

private String getEmotion(RecognizeResult res) {
    Scores scores = res.scores;
    Data data = new Data();

    data.applyMax(scores.anger, "Anger");
    data.applyMax(scores.happiness, "Happiness");
    data.applyMax(scores.contempt, "Contempt");
    data.applyMax(scores.disgust, "Disgust");
    data.applyMax(scores.sadness, "Sadness");
    data.applyMax(scores.neutral, "Neutral");
    data.applyMax(scores.surprise, "Surprise");
    data.applyMax(scores.fear, "Fear");

    return data.emotion;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多