java - 计算不同的字符而不转换为小写
问题描述
方法:
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;
解决方案
你可以这样做
str.chars().filter(ch -> (ch >= 65 && ch <= 90) || (ch >= 97 && ch <= 122)).map(ch -> ch >= 97? ch-32 : ch).distinct().count();
您首先过滤掉与字母不同的所有字符,然后将所有字符转换为大写,但如果这是不允许的,则不使用 toLowercase 或 toUppercase 方法
推荐阅读
- javascript - 如何在 node.js 中为对象动态添加属性?
- python - 脚本在终端上运行,但不是 cron
- vue.js - 如何使用编程导航 Vue.js 传递数据?
- python - 如何关闭使用 os startfile 打开的文件
- android - Jetpack Compose:如何以编程方式将主题从浅色模式更改为深色模式 onClick
- macos - 在 Mac OS Big Sur 11.0.1 上使用 anaconda 安装 Torch 时出现 PackagesNotFoundError
- javascript - 如何使用javascript查看从express发送的json数据?
- javascript - 如何将 Java SocketIO 连接到 Javascript 服务器
- c# - How to pass Model property from ActionLink to Post method (with asp.net core)?
- sql - 行作为列 Oracle DB