【Java】字符串 和 字符的 + 操作

一、介绍

技巧:有字符串,那就是字符串拼接,没有字符串,那就是普通的运算符

  • + 操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。

    例如:"123" + 123,结果为 "123123",而不是246。

  • 当连续进行 + 操作时,从左到右逐个执行的。

    例如:1 + 2 + "abc",结果:“3abc”

    解释:

    ​ 第一步:1 + 2 。在这个过程中,没有字符串参与的,所以做的是加法运算,结果为3。

    ​ 第二步:3 + “abc”。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc"。


二、字符串相加的练习

字符串只有 + 操作,是没有 -、*、/运算的

这里特别注意的是,变量在进行拼接的时候,会把变量里的值拿出来进行拼接!!!

image-20240330154715627

1 + 2 + "abc" + 2 + 1

结果:“3abc21”

解释:

​ 第一步:1 + 2 。在这个过程中,没有字符串参与的,所以做的是加法运算,结果为3。

​ 第二步:3 + “abc”。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc"。

​ 第三步:“3abc” + 2。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc2"。

​ 第四步:“3abc2” + 1。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串“3abc21”


三、练习:数值拆分

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

我们以前在进行计算的时候是通过一系列公式将个位、十位、百位都获取出来,并打印在控制台当中,打印出来的结果就是

image-20240330155411554

但是这种打印结果看起来非常累,如果我不看题目,我怎么知道这个3是什么,2是什么,1是什么?那能不能在打印的时候前面有一些说明性的提示呢?

package com.itheima.test;

import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        //键盘录入一个三位数,获取其中的个位,十位,百位

        //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number = sc.nextInt();

        //2.获取个位,十位,百位
        //公式:
        //个位:  数字 % 10
        //十位:  数字 / 10 % 10
        //百位:  数字 / 10 / 10 % 10
        //...
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100 % 10;
        System.out.println("个位是:" + ge);
        System.out.println("十位是:" + shi);
        System.out.println("百位是:" + bai);
    }
}

结果:

image-20240330155300495

四、字符的+操作

在学习隐式转换的时候,曾经有过这样的提升规则:byte、short、char三种数据在参与运算的时候,都会先提升为int,然后再进行运算。但此时就有一个问题了,byte、short都是一个数字,容易提升,但是char是一个字符,怎么进行提升呢?我们先不着急,先来看一段代码:

char c = 'a'; // 首先定义一个字符类型的变量
int result = c + 0; // 用字符c跟数字0进行了相加
System.out.println(result);// 打印结果为:97

打印结果为什么为97呢,这就要说到字符在进行计算的时候会有以下规则:

当+操作(作为运算符的时候)中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。

ASCII码表(American Standard Code for Information Interchange)美国信息交换标准码表。下面红色框框起来的部分,这张表中,每一个数字都会跟一个唯一的数字产生一个一一对应的关系。这张表是操作系统类似的,每个人的系统中都是存在的,不需要你额外下载。

image-20240330160306905

ASCII码表中:‘a’ ----- 97、‘A’ ----- 65

示例:image-20240330160340677


五、算术运算符的总结

分类:

+ - * / %  这些操作跟小学数学几乎是一模一样的。

注意点:

  • / 和 % 的区别:他们两个都是做除法运算,/取结果的商。% 取结果的余数。
  • 整数操作只能得到整数,如果想要得到小数,必须有浮点数参与运算。

算术运算符的高级用法:

是以+为例进行的讲解,其余减法,乘法,除法的运算规则也是一样的。

特例:字符串只有+操作,没有其他操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值