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

输出不带括号和逗号的Arraylist字符串

南宫喜
2023-03-14

我试图写一个程序,读取一串文本,并打印文本中的所有直方图及其频率。

输入示例:在停车场停车

相应的输出:ar:3pa:2rk:2at:1ca:1he:1in:1ki:1lo:1ng:1ot:1th:1

当我尝试这个示例输入时,它输出[ar:3,pa:2,rk:2,ca:1,at:1,th:1,he:1,ki:1,in:1,ng:1,lo:1,ot:1]

我该如何修复它,使它不会有括号和逗号?

public class Digrams {

public static void main(String args[]) {
    Scanner scan = new Scanner(System.in);

    String str = scan.nextLine();

    ArrayList<String> repetition = new ArrayList<String>();
    ArrayList<String> digrams = new ArrayList<String>();
    String digram;

    for (int i = 0; i < str.length() - 1; i++) {
        digram = str.substring(i, i + 2);
        if (repetition.contains(digram) || digram.contains(" ") || digram.length() < 2) {
            continue;
        }
        int occurances = (str.length() - str.replace(digram, "").length()) / 2;
        digrams.add(digram + ":" + occurances);
        repetition.add(digram);
    }

    Collections.sort(digrams, (s1, s2) -> s2.substring(3, 4).compareTo(s1.substring(3, 4)));

    System.out.println(digrams);
  }
}

共有1个答案

佟和安
2023-03-14

这不是最有效的解决方案,但它能解决问题。

String result = digrams.toString();
System.out.println(result.replaceAll(",","").replace("[","").replace("]",""));
 类似资料:
  • 问题内容: 我通过使用以下命令从sql查询中检索数据 我得到一个元组,如: 我想要一个像 是否存在可以做到这一点的功能? 问题答案: 用途: 您必须在这里使用map(它将元组中的所有项目都转换为字符串),因为否则您将获得。 关于功能的一些说明: 等价于。 它比使用列表理解要快一点: 如该答案的注释所示,可以使用生成器而不是列表。通常,这会更快,但是在这种情况下,它会 更慢 。 如果我要这样做: 这

  • 我有一个字符串,我想用逗号爆炸,但前提是逗号没有嵌套在一些括号内。这是一个相当常见的用例,我一直在阅读这个论坛上的回复帖子,但没有真正找到我要找的东西。 所以,具体来说:重点是,我有一个字符串(=SQL SELECT…FROM语句),我想从列表中提取元素,用逗号分隔,用这个字符串编码(=要从中选择的列的名称)。但是,这些元素可以包含方括号,实际上是函数调用。例如,在SQL中,可以这样做 显然,我想

  • 假设目前我有一个ArrayList,我想在我的java程序中显示它。 我有一个像这样的字符串缓冲区: 此处调用了该方法: getNames()方法是一个准备语句,它遍历所有找到的结果并返回它们。 它给了我这样的结果: 但我希望它不带括号和逗号。我该怎么做呢?我尝试了replace和replaceall方法,但它们总是给我这样的错误: 我总是得到以下错误: 线程“AWT-EventQueue-0”j

  • 问题内容: 我有一个像 我想把它分成那些字符串 如果我简单地打电话给我,那么在修剪之后我会得到不同的结果,因为在某些字符串中,例如,仍然有一个逗号。但我不想放在方括号中。有解决这个问题的优雅方法吗? 问题答案: 假设和没有嵌套和未转义。您可以使用以下方式进行拆分: 正则演示 如果逗号后面没有非圆括号和,则将匹配逗号,从而忽略和中的逗号。

  • 我有一个长字符串,只要逗号不在方括号或圆括号内,我想通过用逗号将其拆分来将其设置为数组。我已经尝试了一些变化,但没有得到我想要的。。。 例1: 例2:

  • 问题内容: 我得到了这样的格式的字符串: 因此从根本上讲,它是演员姓名的列表(可选地,后面是他们在括号中的角色)。角色本身可以包含逗号(演员的名字不能,我强烈希望如此)。 我的目标是将此字符串分成成对的列表- 。 一个明显的解决方案是遍历每个字符,检查是否出现,并在出现逗号时将其拆分。但这似乎有点沉重… 我正在考虑使用正则表达式拆分它:首先用括号将字符串拆分: 这里的奇数元素是演员名称,甚至是角色