准备工作
一、
s1 s2 都是 string
但 s2 的长度是 1
返回 s2 在 s1 中的下标, 从 0 开始, 如果不存在则返回 -1
实现方法:
function find(s1, s2) {
let index = -1
for(let i = 0;i < s1.length;i++){
if(s2 === s1[i]){
index = i
}
}
return index
}
二、给一段全是小写字母的字符串,将其返回为全是大写的形式,这里需要上面的find函数,因为上面已经提供,这里就不写了,剩余的代码如下
let lower = 'abcdefghijklmnopqrstuvwxyz'
let upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
function upperCase(s){
let s1 = s
let s2 = ''
for(let i = 0;i < s.length;i ++){
let index = find(lower, s[i])
s2 += upper[index]
}
return s2
}
console.log(upperCase('bkasdjkfbaksldj')) // BKASDJKFBAKSLDJ
三、给一段全是大写字母的字符串,将其返回为全是小写的形式
这些代码仍然是在上面的基础上添加的
function lowerCase(s){
let s1 = s
let s2 = ''
for(let i = 0;i < s.length;i ++){
let index = find(upper, s[i])
s2 += lower[index]
}
return s2
}
console.log(lowerCase('FABSDAJHDBCFB')) // fabsdajhdbcfb
四、实现JavaScript自带的toUpperCase的功能(正确地处理任意的字符)
function upperCase1(s){
let s1 = s
let s2 = ''
for(let i = 0;i < s1.length;i ++){
if(find(lower,s1[i]) > -1){
let temp = upperCase(s1[i])
s2 += temp
} else{
s2 += s1[i]
}
}
return s2
}
console.log(upperCase1('bB1asdfbB34')) // BB1ASDFBB34
五、实现JavaScript自带的toLowerCase的功能(正确地处理任意的字符)
function lowerCase1(s){
let s1 = s
let s2 = ''
for(let i = 0;i < s1.length;i ++){
if(find(upper,s1[i]) > -1){
let temp = lowerCase(s1[i])
s2 += temp
} else{
s2 += s1[i]
}
}
return s2
}
console.log(lowerCase1('GYGUVG123VGVUYHhhj')) // gyguvg123vgvuyhhhj
实现凯撒加密一位
凯撒加密是指将一串字符串的英文字母部分整体偏移 n 位的加密方法,例如可以将 qqq 整体向右偏移一位 变成 rrr
// 这是对单个字符偏移 n 位的函数
function shiftedChar(char, n) {
var lower = 'abcdefghijklmnopqrstuvwxyz'
var upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
var index = find(upper, char)
if (index > -1) {
var newIndex = (index + n + 26) % 26
log('upper char', index, char)
return upper[newIndex]
} else {
index = find(lower, char)
if (index > -1) {
var newIndex = (index + n + 26) % 26
log('lower char', index, char)
return lower[newIndex]
} else {
return char
}
}
}
// 这是对任意长的字符串实现偏移一位的函数
function encode1(s) {
var result = ''
for (var i = 0; i < s.length; i++) {
var c1 = s[i]
var c2 = shiftedChar(c1, 1)
log('encode', c1, c2)
result += c2
}
return result
}