有 Java 编程相关的问题?

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

java从arraylist获取中间长度

我对Java非常陌生,我想进行一次计算,但结果总是出错。我正在尝试将单词的中间长度添加到arraylist中。我找到了用数组来实现这一点的代码,但似乎找不到用arraylist实现这一点的解决方案

这是我的代码: (单个字符串通过文本字段添加)

ArrayList<String> stringList = new ArrayList<>();

double wordLength;
double average;
double middle;
String medianNum;

@Override
protected void onCreate(Bundle savedInstanceState) {...

    middle = 0;

    for (String word2 : stringList) {
        wordLength = stringList.length();
        middle = wordLength / 2;
    }

    if (middle % 2 == 1){
        medianNum = String.format("%.2f", middle);
    } else {
        medianNum =  String.format("%.2f", ((middle-1) + middle)/2.0);
    }

    // Add/Update the average number to the textview
    medianLength.setText(medianNum);


}

共 (1) 个答案

  1. # 1 楼答案

    首先,根据字符串长度对数组进行排序。可以通过将Comarator传递给排序功能来实现,如下所示:

    Collections.sort(stringList, new Comparator<String>() {
        @Override
        public int compare(String s1, String s2)
        {
            return  s1.length() - s2.length();
        }
    });
    

    然后,按如下方式获得中间值:

    if (stringList.size() % 2 == 1) {
        middle = stringList.get(stringList.size()/2).length();
    } else {
        middle = (stringList.get(stringList.size()/2).length()
               + stringList.get(stringList.size()/2-1).length()) / 2.0;
    }