案例为一个回归字符算法(rester)
//0的ascall码为48,A的ascall码为65,a的ascall码为97
func Rester(data string) bool {
var bo bool = true
strlen := len(data)
dataByte := []byte(data)
//这里的for不能使用如下形式
//for i:=0,j:=0;i<j;i++,j--
//这个时不可以被使用的
for i, j := 0, strlen-1; i < j; i, j = i+1, j-1 {
//利用ascall
if dataByte[i] < 65 || (dataByte[i] > 90 && dataByte[i] < 97) || dataByte[i] > 122 {
j++
continue
}
if dataByte[j] < 65 || (dataByte[j] > 90 && dataByte[j] < 97) || dataByte[j] > 122 {
i--
continue
}
//字母转换
//或者可以到前面字符串还未形成字符数组时
//使用ToUpper()将字符串转换为大写
//使用ToLower()将其转为小写
if dataByte[i] >= 97 {
dataByte[i] -= 32
}
if dataByte[j] >= 97 {
dataByte[j] -= 32
}
//进行比较
if dataByte[i] != dataByte[j] {
bo = false
break
}
}
return bo
}