1、转换成小写
遍历将大写转成小写。
public static String toLowerCase(String s) {
int n = s.length();
char[] chars = s.toCharArray();
for (int i = 0; i < n; ++i) {
if (chars[i] >= 65 && chars[i] <= 90) {
chars[i] += 32;
}
}
String str = new String(chars);
return str;
}
2、转换成整数
注意开头除了符号不是数字的情况,直接返回。
怕溢出,所以在最后*10之前先比较*10之前的数和结果/10,在溢出前返回。
public static int myAtoi(String str){
int len = str.length();
char[] chars = str.toCharArray();
//1.去掉前导空格
int index = 0;
while(index < len && chars[index] == ' '){
index++;
}
//2.如果全是空格
if(index == len){
return 0;
}
//3.辨别符号
int sign = 1;
char firstSign = chars[index];
if(firstSign == '+'){
index++;
}else if(firstSign == '-'){
sign = -1;
index++;
}
//4.转换
int res = 0;
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
while(index < len){
char currChar = chars[index];
//不合法
if(currChar > '9' || currChar < '0'){
break;
}
//越界,就返回界。
if(res > max/10 || (res == max/10 && (currChar - '0') > max % 10)){
return max;
}
if(res < min/10 || (res == min/10 && (currChar - '0') > -(min % 10))){
return min;
}
//合法情况,带着符号相乘(保证负数的时候)
res = res * 10 + sign * (currChar - '0');
index++;
}
return res;
}