写一个函数将一个字符串中的大写字母转换为小写,再写一个测试函数测试其功能。不允许使用strlwr函数

如题所述

源程序如下:

public class StringToLowerCase {

    public String toLowerCase(String str) {

        char[] chars = str.toCharArray();

        for (int i=0;i<chars.length;i++){

            if (isCapitalLetter(chars[i])){

                chars[i]=(char)(chars[i]-'A'+'a');

            }

        }

        return String.valueOf(chars);

    }

    public boolean isCapitalLetter(char ch){

        if (ch>='A'&&ch<='Z'){

            return true;

        }

        return false;

    }

    public static void main(String[] args) {

        String s ="LOVELY";

        System.out.println(new StringToLowerCase().toLowerCase(s));

    }

}

扩展资料:

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

思路:

方法一:用hashmap {a:A...}进行对应

 方法二:用(char)(chars[i]-'A'+'a'),来获得对应的转换

主要问题出在String是不可改变的,需要改变其中的某个字符,可以考虑把String转换为char[],改完之后再转换为String即可

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-23
#include <stdio.h>
#include <string.h>
//大写字母转换为小写函数
void upper2lower(char *s)
{
int i;
for(i=0;s[i]!='\0';i++)
if(s[i]>='A' && s[i]<='Z')
s[i]=s[i]+32;
}
int main()
{
char str[256];
gets(str);
upper2lower(str);
puts(str);
return 0;
}

示例测试结果:

ABCDEF GHIJKL!

abcdef ghijkl!

本回答被提问者采纳
相似回答