java - 如何从给定列表中获取包含更多小写字符的字符串?

标签 java while-loop java-stream

如何从给定的 List<String> 中获取包含更多小写字符的字符串?

我已经使用 Java 10 Streams 以函数式方式完成了此操作,但我想使用 while 以迭代方式完成此操作。循环。但我不知道该怎么做。 这是我的功能代码。

public static Optional<String> stringSearched (List<String> pl) {
   return pl.stream()
            .max(Comparator.comparing(x->x.chars()
                                       .filter(Character::iLowerCase)
                                       .count()
            ));
}

最佳答案

import java.util.ArrayList;
import java.util.List;

public class Something {
    public static void main(String []args){
        ArrayList<String> list = new ArrayList<String>();
        list.add("LOSER");
        list.add("wInner");
        list.add("sECONDpLACE");

        System.out.println(findMoreLowerCase(list));
    }

    private static String findMoreLowerCase(final List<String> list){
        String moreLowerCase = ""; // Tracks the current string with less lowercase
        int nrOfLowerCase=0; // Tracks the nr of lowercase for that string

        int current; // Used in the for loop
        for(String word: list){
            current = countLowerCase(word);
            if(current > nrOfLowerCase){
                // Found a string with more lowercase, update
                nrOfLowerCase = current;
                moreLowerCase = word;
            }
        }
        return moreLowerCase;
    }

    private static int countLowerCase(String s){
        // Scroll each character and count 
        int result = 0;
        for (char letter : s.toCharArray()) {
            if (Character.isLowerCase(letter)){
                ++result;
            };
        }
        return result;
    }

}

关于java - 如何从给定列表中获取包含更多小写字符的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53224385/

相关文章:

java - 累加器在并行流中无法正常工作

java - Cassandra 在保存 java.util.UUID 时说 "InvalidQueryException: Invalid version for TimeUUID type"

java - @Entity 无法识别@MappedSuperclass 中的@Id

java - 有没有办法在按下按钮之前停止方法?

java - 如何从Java while循环中获取变量?

Java,流: how to convert expression with.收集(Collectors.toList())

java - 在一段时间后终止由 exec() 启动的进程并将帧存储在数组中

java - 从 treeMap 中删除最小的键

C 编程 - fprintf 和 printf in while cicle 不起作用

Java流通过键查找值(如果存在)