扫码关注官方订阅号
alphabet_position("The sunset sets at twelve o' clock.") return "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11"
alphabet_position("The sunset sets at twelve o' clock.")
return "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11"
走同样的路,发现不同的人生
英文字母的 ASCII (10進制):
ASCII
a 97 ~ z 122所以減去 96 就是在字母表的位置
97
122
96
而 javascript 提供了 charCodeAt(0) 可以讓我們把字元轉換成 ascii
javascript
charCodeAt(0)
ascii
console.log( alphabet_position("The sunset sets at twelve o' clock.") ) function alphabet_position(string) { return string .split("") // 分割成字元 .filter(f => f.toLowerCase() != f.toUpperCase()) // 判定是否為英文字母 .map(m => m.toLowerCase().charCodeAt(0) - 96 ) // 轉換成小寫取得 ascii 並減去 96 .join(" ") // 再把這些分割的字元組合在一起並且用空格分隔 }
思路:1、利用toUpperCase或者toLowerCase转换为大写或者小写,2、用for循环对字符串中的字符遍历,利用charCodeAt进行获取字符的Unicode编码,其中应该要做一下判断,因为字符串中可能会有其他字符,如空格等,因为A是65,a是97,所以如果转换为了大写,应该减去64,小写应该减去96,如果是字母,将所得值push进一个数组3、最后利用join方法返回字符串,代码如下
function position(string){ var strArr=string.toLowerCase(); var numArr=[]; for(var i=0;i<strArr.length;i++){ var num=strArr.charCodeAt(i); if(num>96&&num<123){ num=num-96; numArr.push(num); } } return numArr.join(" ") }
我的思路:1.把26个字母写到一个数组内。2.把字符串也放到一个数组内,注意:每个字母,是一个数组内元素。3.两层循环,两个数组内的元素两两比较,相同的输出索引值加1。
更高效的做法不是直接定义好映射字典,然后遍历输出对应的位置?
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
英文字母的
ASCII(10進制):a
97~ z122所以減去
96就是在字母表的位置而
javascript提供了charCodeAt(0)可以讓我們把字元轉換成ascii例子
思路:1、利用toUpperCase或者toLowerCase转换为大写或者小写,
2、用for循环对字符串中的字符遍历,利用charCodeAt进行获取字符的Unicode编码,其中应该要做一下判断,因为字符串中可能会有其他字符,如空格等,因为A是65,a是97,所以如果转换为了大写,应该减去64,小写应该减去96,如果是字母,将所得值push进一个数组
3、最后利用join方法返回字符串,代码如下
我的思路:
1.把26个字母写到一个数组内。
2.把字符串也放到一个数组内,注意:每个字母,是一个数组内元素。
3.两层循环,两个数组内的元素两两比较,相同的输出索引值加1。
更高效的做法不是直接定义好映射字典,然后遍历输出对应的位置?