美文网首页
2、转换成小写字母

2、转换成小写字母

作者: ZeroForSpider | 来源:发表于2018-10-23 17:12 被阅读9次

    1、题目如下:

    实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。

    示例 1:

    输入: "Hello"
    输出: "hello"
    示例 2:

    输入: "here"
    输出: "here"
    示例 3:

    输入: "LOVELY"
    输出: "lovely"

    2、代码如下:

    class Solution {
        public String toLowerCase(String str) {
            char [] chars=str.toCharArray(); 
            for(int i=0;i<chars.length;i++){
                if(chars[i]>=65&&chars[i]<=91){
                    chars[i]=(char)(chars[i]+32);
                }
            }
            return String.valueOf(chars);
        }
    }
    
    public class MainClass {
        public static String stringToString(String input) {
            if (input == null) {
                return "null";
            }
            return Json.value(input).toString();
        }
        
        public static void main(String[] args) throws IOException {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            String line;
            while ((line = in.readLine()) != null) {
                String str = stringToString(line);
                
                String ret = new Solution().toLowerCase(str);
                
                String out = (ret);
                
                System.out.print(out);
            }
        }
    }
    
    

    问题思路:
    使用.toCharArray()将传入的字符串转换为字符数组,写一个for循环去遍历这个字符数组,并在遍历的过程中使用ASCII码来判断当前字符是否为大写字母。众所周知,ASCII范围为[65,91]的为大写字母。若当前字母为大写字母,则通过大写字母的ASCII码+32转换为小写字母,不过为什么大写字母的ASCII码加32后为其所对应的小写字母呢,通过查询ASCII码表可知,小写字母a的ASCII码为97,而大写字母A的ASCII字母为65。则大写字母和小写字母之间的差值为97-65=32。最后需要使用(char)将ASCII转换为对应的字母。因为转换后的结果为字符数组,而该函数返回类型为String。所以需要使用String.valueOf将char []转换为String。

    image.png

    相关文章

      网友评论

          本文标题:2、转换成小写字母

          本文链接:https://www.haomeiwen.com/subject/scmazftx.html