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

计算不同的字符而不转换成小写

李建中
2023-03-14
public static int noOfLetters (String str)

给我一个字符串,需要返回字符串中唯一字母的数量,大写和小写字母被认为相等,但你不能用小写转换它们,反之亦然。我试过很多东西。这是我能编的最好的代码:例如:“cd$ad”将返回3

public static int noOfLetters(String str) {
    char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    int count = 0;
    int j = 0;
    for(int i=0;i<str.length();i++) {
        if(str.charAt(i) != alphabet[j])
            j++;
        count++;
    }
    return count;

共有1个答案

毋宏茂
2023-03-14

我建议您枚举字符并将它们放在不区分大小写的映射中。

在循环结束时,您应该获取keys集合大小,以获取唯一字母的数量。

这里https://www.baeldung.com/java-map-with-case-insensition-keys是关于如何使用不区分大小写的映射的教程。.

 类似资料:
  • 考虑下面这个简短的C++程序: 如果我在不同的编译器上编译它,我会得到不同的结果。对于CLANG3.4和GCC 4.4.7,它打印,而Visual Studio 2013打印,这意味着它们在调用不同的强制转换操作符。根据标准,哪一个是正确的行为? 根据我的理解,不需要转换,而需要到的转换,因此编译器应该选择第一个。对此做了什么吗?const-conversion是否被编译器认为更“昂贵”? 如果删

  • 问题内容: 我正在努力将字符串转换为元组而不在此过程中拆分字符串的字符。有人可以建议一种简单的方法来做到这一点。需要一个衬板。 失败 作品 由于我的输入是字符串,因此我尝试了以下代码,将字符串转换为列表,该列表再次将字符串拆分为字符.. 失败 预期产量: 产生的输出: 问题答案: 你可以做。无需使用功能。(请注意,逗号是必需的。) 从本质上讲,是指做出的一个元组 内容 的,不只是由一个元组本身。字

  • 我想序列化java.time类型的创建日期。调用spring data rest服务时,LocalDateTime为String。实体的字段用DateTimeFormat(iso=iso.DATE_TIME)进行注释。我还在Spring Configuration类中注册了LocalData到String转换器。 但是没有调用转换器,创建日期被序列化为Json结构,如下所示: 这是实体定义: 简单

  • 问题内容: 有没有一种方法可以在不使用JavaScript的情况下计算存储在字符串中的公式? 通常我会做类似的事情 那么,有人知道吗? 问题答案: 这正是您应该使用eval的地方,否则您将不得不遍历字符串并生成数字。您将必须使用isNaN方法来执行此操作。

  • 我使用将json字符串转换为JSONObject,并使用gson 将JSONObject转换为Java对象,但是当json属性值包含引号时会出现错误,例如 编辑:我以以下方式从服务器api获取数据: 我用”“”“替换“”“”“”“”“”“”“> 编辑2:我以错误的方式将字符串转换为JSOObject。 通过删除斜杠,我也删除了转义字符的斜杠。 解决方案:相反,我使用了stringescapeuti

  • 问题内容: 为什么当我使用以下操作对字符求和时,它返回数字而不是字符?它不应该给出相同的结果吗? 下面的代码复制了字符: doubleChar(“ The”)→“ TThhee” 问题答案: 以下表达式的结果 是String连接的结果。Java语言规范说明 字符串串联的结果是对String对象的引用,该对象是两个操作数字符串的串联。在新创建的字符串中,左侧操作数的字符位于右侧操作数的字符之前。 的