阿里云建站,西昌市做网站的,巩义专业网站建设公司首选,河北电子网站建设1. 转换成小写字母
给你一个字符串 s #xff0c;将该字符串中的大写字母转换成相同的小写字母#xff0c;返回新的字符串。 转换成小写字母
1.1 利用ASCII
首先需要直到常见的ASCII值 a-z: 97-122 A-Z: 65-90 0-9: 48-57 只需要将这个字符串先转换成字符#xff0c;然后…1. 转换成小写字母
给你一个字符串 s 将该字符串中的大写字母转换成相同的小写字母返回新的字符串。 转换成小写字母
1.1 利用ASCII
首先需要直到常见的ASCII值 a-z: 97-122 A-Z: 65-90 0-9: 48-57 只需要将这个字符串先转换成字符然后让字符32就是对应的小写字符然后将字符数组转换成字符串。 public String toLowerCase(String s) {char [] chars s.toCharArray();for(int i0;is.length();i){if(chars[i] 65 chars[i]90){chars[i] 32;}}String str new String(chars);return str;}2. 字符串转换整数 (atoi)
字符串转换整数 (atoi) 请你来实现一个 myAtoi(string s) 函数使其能将字符串转换成一个 32 位有符号整数类似 C/C 中的 atoi 函数。
函数 myAtoi(string s) 的算法如下
读入字符串并丢弃无用的前导空格 检查下一个字符假设还未到字符末尾为正还是负号读取该字符如果有。 确定最终结果是负数还是正数。 如果两者都不存在则假定结果为正。 读入下一个字符直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。 将前面步骤读入的这些数字转换为整数即“123” - 123 “0032” - 32。如果没有读入数字则整数为 0 。必要时更改符号从步骤 2 开始。 如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] 需要截断这个整数使其保持在这个范围内。具体来说小于 −231 的整数应该被固定为 −231 大于 231 − 1 的整数应该被固定为 231 − 1 。 返回整数作为最终结果。 注意
本题中的空白字符只包括空格字符 ’ ’ 。 除前导空格或数字后的其余字符串外请勿忽略 任何其他字符。
2.1
根据题目
传递的字符串需要先去除里面的空格然后判断数字的正负这个可以采用一个标志来表示正负还需要判断这个字符是不是数字采用ASCII判断如果遇到的第一个字符不是数字退出。数字采用第一位*10第二位数字 public int myAtoi(String s) {int length s.length();char [] chars s.toCharArray();// 去除空格int index 0;while(indexlength chars[index] ){index;}// 遍历完成if(length index){return 0;}// 判断正负int sign 1;char firstChar chars[index];if(firstChar ){index;}else if(firstChar -){index;sign -1;}// 转换数字int res 0;while(indexlength){char currentChar chars[index];// 不合法if(currentChar 9 || currentChar0){break;}// 避免溢出if(res Integer.MAX_VALUE/10 ||(res Integer.MAX_VALUE / 10 (currentChar - 0) Integer.MAX_VALUE % 10)){return Integer.MAX_VALUE;}if(resInteger.MIN_VALUE/10 ||(res Integer.MIN_VALUE / 10 (currentChar - 0) -(Integer.MIN_VALUE % 10))){return Integer.MIN_VALUE;}res res*10sign*(currentChar - 0);index ;}return res;}思路有的但是实际操作还是有点难以处理例如判断溢出的情况可以采取的方法。