算法训练 大小写转换(java)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lc5801889/article/details/86767630

问题描述

编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
  输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
  输出格式:输出经过转换后的字符串。

输入输出样例

样例输入
AeDb
样例输出
aEdB

本题思路

本题主要考察对字符数的大小写转换问题,我们需要知道大写字母和小写字母对应的ASCII码(附ASCII码查询),从表中我们可知,a-z对应的ASCII码为97-122;A-Z对应的ASCII码为65-90,他们之间的转换关系为"a-32=A",因此我们可以用循环判断的方式实现大小写转换。
代码如下:

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String n = sc.next();
		//超出长度范围则不输出
		if(n.length()>20){
			return;
		}
		//定义一个接受转换后字符的新数组
		char arr[] = new char[n.length()];
		//循环判断,如果是大写则转换为小写,反之亦然
		for (int i = 0; i < n.length(); i++) {
			char temp = n.charAt(i);
			if('a'<=temp&&temp<='z'){
				temp=(char)(n.charAt(i)-32);
			}else if('A'<=temp&&temp<='Z'){
				temp=(char)(n.charAt(i)+32);
			}
			arr[i]=temp;
		}
		//输出该数组
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]);
		}
	}

}

图片

猜你喜欢

转载自blog.csdn.net/lc5801889/article/details/86767630