2、转换成小写字母

2018-10-23  本文已影响9人  ZeroForSpider

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
上一篇 下一篇

猜你喜欢

热点阅读