学习-Java顺序结构之字符变换之大小写字母转换

本文介绍了Java中字符型变量的使用,包括字符常量、字符运算以及字符的输入输出。重点讲解了如何将键盘输入的大写字母转换为小写字母的步骤,涉及字符型数据的加减运算和强制类型转换。
摘要由CSDN通过智能技术生成

第1关:学习-Java顺序结构之字符变换之大小写字母转换

任务描述

本关任务:将键盘输入的大写字母转化为小写字母。

相关知识

为了完成本关任务,你需要掌握:

  1. 字符型变量和常量;
  2. 字符型数据的加减运算;
  3. 字符型数据的输入/输出。
字符型变量和常量

在之前我们学习了整型和浮点型的变量和常量,接下来介绍字符型的变量和常量。

首先我们要先了解一下什么是字符,我们之前学过 Unicode 字符集,这里的字符值的就是 Unicode 字符集中的字符。

字符型常量

字符常量,用单引号引用起来的的单个字符,就叫字符常量,例如:'w','2','R' 等。

例子:

 
  1. public class Demo {
  2. public static void main(String[] args) {
  3. // 单引号里面是字符常量,里面的内容不可以为空,必须是一个字符,不可以是两个或多个。
  4. System.out.println('q');
  5. System.out.println('汉');
  6. }
  7. }
字符型变量

Java 中的字符型变量类型为 char ,它是一个单一的两个字节的 16 位 Unicode 字符;最小值是 \u0000(即为 0 );最大值是 \uffff(即为 65535 );默认值为空;用单引号引起来的部分;它可以储存任何字符,示例如下:

 
  1. // 声明一个变量名为 a,数据类型为 char 的变量,并赋予该变量的值为 A
  2. char a = 'A';
  3. // 声明一个变量名为 b,数据类型为 byte 的变量,并赋予该变量的值为 汉
  4. char b = '汉';
  5. // 输出 a,b 两个变量
  6. System.out.println(a);
  7. System.out.print(b);

执行结果如下:

 
  1. A
字符运算

字符类型是可以运算的,因为字符在 ASCII 等字符编码表中有对应的数值。在 Java 中,对字符型字符运行时,直接当做 ASCII 表对应的整数来对待。

示例:

 
  1. // 定义一个字符型变量a,值为 a
  2. char a = 'a';
  3. // 定义一个字符型变量b,值为 b
  4. char b = 'b';
  5. // 定义一个字符型变量c,值为 中
  6. char c = '中';
  7. // 定义一个字符型变量d,值为 国
  8. char d = '国';
  9. // 字符之间运算,类型会提升为 int 类型
  10. int m = a + b; // 计算 a+b 的值
  11. System.out.println(a);
  12. int n = a - b; // 计算 a-b 的值
  13. System.out.println(b);
  14. System.out.print(c+d);

执行结果:

 
  1. 195
  2. -1
  3. 42282

我们发现字符之间运算,类型会提升为 int 类型,而如果我们并不想输出它的 ASCII 码的值,而是想要输出它对应的字符该怎么办呢?

我们可以将 int 类型强制转换为 char,当我们想要将一个大范围的数据类型转换为小范围的数据类型,我们需要进行强制转换。在后面的学习任务中,我们会为大家详细介绍强制转换。

 
  1. // 定义一个字符型变量a,值为 a;
  2. char a = 'a';
  3. // 将 int 类型强制转化为 char 型。
  4. char m = (char)(a - 32);
  5. // 定义一个字符型变量c,值为 中;
  6. char c = '中';
  7. // 定义一个字符型变量d,值为 国;
  8. char d = '国';
  9. // 将 int 类型强制转化为 char 型。
  10. char n = (char)(c+d);
  11. System.out.println(m);
  12. System.out.print(n);

执行结果:

 
  1. A

我们可以看到 a-32 结果为 A,这是为什么呢?

因为字符 char 采用的是 Unicode 编码的 16 位字符类型,其表示范围是 0-65536。标准的 8 位 ASCII 字符集是 Unicode 的子集,其取值范围为 0-127。大小写字母之间正好相差 32。

当然,我们还要注意的是字符串常量之间的加减运算并不需要强制转换,但是我们要注意,当它结果超出 char 的范围后会溢出。

 
  1. char m = 'a' - 32;
  2. System.out.print(m);

执行结果:

 
  1. A

字符运算我们已经有了一定的了解,那字符的输入输出又是怎样的呢?

字符输入输出

在之前我们学习了整型和浮点型的输入,那我们接着来看字符型的输入输出。

它与整型和浮点型都是通过实例一个 Scanner 对象来使用,字符型是调用reader.next().charAt(0)方法来获取键盘输入的字符。charAt(0)括号中的参数可以不为 0 ,在后期的学习任务中我们会为大家详细介绍。

 
  1. import java.util.Scanner;
  2. public class Demo{
  3. public static void main(String[] args) {
  4. // 第一步:创建一个Scanner的实例对象,命名为reader
  5. Scanner reader = new Scanner(System.in);
  6. // 从键盘处接收用户输入的字符型数据
  7. char a= reader.next().charAt(0);
  8. System.out.print(a);
  9. }
  10. }

用户键盘输入:a

执行结果:

 
  1. a

这就是如何获取键盘输入字符型数据的操作了,那我们接下来学习如何输出字符型数据。

我们之前学到的System.out.print()System.out.println(),对于输出字符型数据与输出整型与字符型都是一样的。

例子:

 
  1. char a = '中';
  2. char b = '国';
  3. System.out.println(a)
  4. System.out.print(b);

执行结果:

 

接下来我们来看格式化输出字符型数据。输出整型用的符号是 %d,而浮点型是 %f,那字符型是什么呢?

%c 是格式化输出字符型符号,来看一个例子。

 
  1. char d = '汉'
  2. System.out.printf("我是%c族人",d);

执行结果:

 
  1. 我是汉族人
编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。


开始你的任务吧,祝你成功!

源代码:

/**

 * 任务:将键盘输入的字符转化为小写字母。

 * 类名为:LowerCase

 */

import java.util.Scanner;

public class LowerCase {

    public static void main(String[] args) {

   

        Scanner reader = new Scanner(System.in);

       

        // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码

        /********** Begin **********/

        // 第一步:获取键盘输入的值

        char c=reader.next().charAt(0);

        // 第二步:将获取到的大写字母转化为小写字母

        if(c>='A'&&c<='Z')

        // 第三步:不换行输出转化后的小写字母

        System.out.print((char)(c+32));

        else

        System.out.print((char)c);

        /********** End **********/

    }

}

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值