最少必要知识
- ‘0’ 对应的ASCII码是 48
- ‘A’ 对应的ASCII码是 65
- 'a‘ 对应的ASCII码是 97
这也是 JavaScript 中 'a' > 'A'
为 true
的原因。
转换字母大小写
假设做如下规定
- 参数letter: 为单个英文字母字符;
- 参数 mode :小写换大写为 1;大写换小写为 -1。
JavaScript:
const toUpperOrLowerClass = (letter, mode) => {
const charCodeOfTheLetter = letter.charCodeAt() + ('A'.charCodeAt() - 'a'.charCodeAt()) * mode
const upperClassedLetter = String.fromCharCode(charCodeOfTheLetter)
return upperClassedLetter
}
console.log(toUpperOrLowerClass('a', 1))
console.log(toUpperOrLowerClass('A', -1))
Python:
def toUpperOrLowerClass(letter, mode):
charCodeOfLetter = ord(letter) + (ord('A') - ord('a')) * mode
return chr(charCodeOfLetter)
print toUpperOrLowerClass('a', 1)
print toUpperOrLowerClass('A', -1)
关键就是 ord(letter) + (ord('A') - ord('a'))
这一步。
转换整数字符String/Number类型
假设规定参数是 0 - 9 的单数整数字符串,如 ‘9’、‘7’。
JavaScript
const strToNum = (str) => (str.charCodeAt() - '0'.charCodeAt())
python
def strToNum(str):
return ord(str) - ord('0')
对于非个位数的整数字符串,只需要类似 number = number * 10 + itemNum
这样,个位、十位、百位一次处理就可以了。