当前位置: 首页 > 知识库问答 >
问题:

使用JAVA计算字符串的每个段中哪个邮件的数目最多

裘光启
2023-03-14

null

null

String strA = "ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com," + '\n' +
            "ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,az@gmail.com," + '\n' +
            "ax@gmail.com,ay@gmail.com,ax@gmail.com,ay@gmail.com,ax@gmail.com,ay@gmail.com,";

null

关于我的输出的说明:

在第一段-“ax@gmail.com”是4次,在其他电子邮件中出现的次数最多。

在第二段中--“az@gmail.com”是3次,在其他电子邮件中出现的次数最多。

null

null

null

String strA = "ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com," + '\n' +
            "ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,az@gmail.com," + '\n' +
            "ax@gmail.com,ay@gmail.com,ax@gmail.com,ay@gmail.com,ax@gmail.com,ay@gmail.com,";
String[] lines = strA.split("\n");
List<Integer> counts = new ArrayList<>();
for (String line : lines) {
    counts.add(new HashSet<String>(Arrays.asList(line.split(","))).size());
}
System.out.println(counts);  // [3, 3, 2]

但如何达到我的目标,输出:4,3,3

请帮帮我.TIA

共有1个答案

慕容玉堂
2023-03-14

你就快到了,下面这个建议怎么样:

    String strA = "ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com," + '\n' +
            "ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,az@gmail.com," + '\n' +
            "ax@gmail.com,ay@gmail.com,ax@gmail.com,ay@gmail.com,ax@gmail.com,ay@gmail.com,";
    String[] lines = strA.split("\n");

    List<HashMap<String, Integer>> segments = new ArrayList<>();
    for(String line: lines){
        HashMap<String, Integer> counts = new HashMap<>();
        segments.add(counts);
        String[] emails = line.split(",");
        for(String email : emails){
            Integer emailCount = counts.containsKey(email) ? counts.get(email) + 1 : 1;

            counts.put(email, emailCount);
        }
    }
    segments.forEach(System.out::println);

输出:

{ax@gmail.com=4, ay@gmail.com=3, az@gmail.com=3}
{ax@gmail.com=2, ay@gmail.com=2, az@gmail.com=3}
{ax@gmail.com=3, ay@gmail.com=3}

编辑:若要获得所需的输出,可以将最后一行替换为以下一行:

    segments.forEach(segment -> {
       segment.forEach((key, val) -> {
           System.out.print(val + " ");
       });
        System.out.println();
    });

2编辑:

在我现在理解了任务之后,这里有一个更新:d:

public class Application {
public static void main(String[] args){
    String strA = "ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com," + '\n' +
            "ax@gmail.com,ay@gmail.com,az@gmail.com,ax@gmail.com,ay@gmail.com,az@gmail.com,az@gmail.com," + '\n' +
            "ax@gmail.com,ay@gmail.com,ax@gmail.com,ay@gmail.com,ax@gmail.com,ay@gmail.com,";
    String[] lines = strA.split("\n");
    System.out.print("[");
    for(String line: lines){

        Integer count = getMaxCountForSegment(line.split(","));
        System.out.print(count + " ");
    }
    System.out.println("]");
}

public static Integer getMaxCountForSegment(String[] emails){
    HashMap<String, Integer> counts = new HashMap<>();
    for(String email : emails){
       Integer emailCount = counts.containsKey(email) ? counts.get(email) + 1 : 1;
        counts.put(email, emailCount);
    }
    return counts.values().stream().max(Comparator.comparing(Integer::valueOf)).get();
}

输出:

[4, 3, 3]
 类似资料:
  • 问题内容: 这是来自pyschools的问题。 我确实做对了,但我猜测会有一个更简单的方法。这是最简单的方法吗? 看起来应该像这样: 问题答案: 在2.7+中: 较早的版本(2.5或更高版本,到目前为止):

  • 我需要编写一个程序,用户输入字符串的数量,程序计算每个字符串中的元音数量并打印元音总数。以下代码无需二维数组即可工作 但是,以下代码不适用于二维数组。它仅从第一个字符串打印元音。 如何从输入的所有字符串打印元音?

  • 我正在处理一个文档(熊猫数据框),其中包含数千行文本消息(dtype=str)及其分类(垃圾邮件或非垃圾邮件): 我想计算每条消息(即每行)的字符数,将它们分成一个单独的列(“长度”),将它们的总数相加,然后除以len(文档),得到文档的平均长度(字符数)。在存在非字符空间的情况下,获取此属性的最有效方法是什么?我是否只对整个数据帧中的每一行条目应用len()? 非常感谢。

  • 本文向大家介绍Java程序使用Hashmap计数字符串中每个字符的出现次数,包括了Java程序使用Hashmap计数字符串中每个字符的出现次数的使用技巧和注意事项,需要的朋友参考一下 Java程序使用Hashmap计数字符串中每个字符的出现次数,Java代码如下- 示例 输出结果 一个名为Demo的类包含名为count_characters的函数。这里创建了一个hashmap,用于存储字符及其计数

  • 问题内容: 我可以列出所有目录 我试图使用以下命令列出每个目录的内容并计算每个目录中的文件数 但这是求和的总和 有没有一种方法可以计算每个目录中的文件数? 问题答案: 假设您已找到GNU,请让其查找目录,然后让bash进行其余操作:

  • 本文向大家介绍使用MySQL计算字符串中的字符数,包括了使用MySQL计算字符串中的字符数的使用技巧和注意事项,需要的朋友参考一下 今天,我需要从一个表中获取一些数据,该表中另一个字符串中不止一个字符串出现。基本上,我需要从一个表中查找所有深度超过3级(即带有3个斜杠)的URL,但是意识到在MySQL中没有函数可以执行此操作。我找到了另一种方法,但它使我思考如何可能。 找到解决方案并不是很困难,我