专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java入门到高级学习-C3 Java基本数据类型变量运算和字符串运算

temp10 2024-11-21 21:22:02 java教程 13 ℃ 0 评论

Hello All,今天为大家带来Java当中,基本数据类型变量的运算和字符串的运算,首先我们先来回顾下,数据类型都有哪些?根据数据类型划分,Java数据类型分为8种基本数据类型和3种引用数据类型,其中基本数据类型分为整数型(byte、short、int和long),浮点型(float和double),字符型(char)以及布尔型(boolean);引用数据类型分为类,接口以及数组。字符串在Java当中是类的一种。

那么对于基本数据类型变量的运算,且只针对除布尔型以外的7种数据类型,分为自动类型提升运算和强制类型转换运算:

Java入门到高级学习-C3 Java基本数据类型变量运算和字符串运算

1、自动类型提升(转换):

当容量小的数据类型变量与容量大的数据类型变量做运算时,结果自动提升至容量大的类型(容量表示的是表示数的范围的大小,例如float的容量大于long的容量)

容量顺序:byte、short、char -- > int -- > long --> float --> double

注意:当byte、short、char三种类型做运算时,结果至少要以int接收

public class VariableCalculate {
	public static void main(String[] args) {
		byte myByte = 2;
		int myInt = 129;
		int myInt2 = myByte + myInt; // 接收运算结果时,按照尽量大的容量类型接收
		//long myLong = myByte + myInt; 返回结果131
		//float myFloat = myByte + myInt; 返回结果131.0
		System.out.print(myInt2);
    // 如未按照规则,则会编译错误,例如:byte myByte2 = myByte + myInt

这个时候有小伙伴可能会疑惑,如果一个字符和一个整数进行相加运算时,结果该是什么样子呢?其实每个字符有对应的ASCII码,例如字符‘a’对应整数97,运算结果如下:

public class VariableCalculate{
  public static void main(Sting[] args){
    char myChar = 'a';
    int myInt = 10;
    int myInt2 = myInt + myChar;
    System.out.println(myInt2);
  }
}

// 返回结果为107

实际编码过程中的特殊情况:

  • 定义long整数型时,末尾未加“l”或“L”,则默认数据类型为int,但可能造成数据溢出产生编译失败;
  • 定义float浮点型时,末尾为加“f”或“F”,则一定会造成编译错误;
  • 涉及常量运算时,整型常量默认为int,浮点型常量默认为double;

2、强制类型转换:自动提升运算的逆运算(将容量大的数据类型变量转换为容量小的数据类型变量)

  • 需要使用强转符:();
  • 注意:强制类型转换,可能导致精度损失(截断操作导致)
public class VariableCalculate {
	public static void main(String[] args) {
		//****************强制类型转换******************
		double myDouble = 12.5;
		int myInt5 = (int)myDouble; // 截断操作,结果为12
		System.out.println(myInt5);
	}
}

3、字符串(String)变量的使用及运算

  • String类型数据引用数据类型,不属于基本数据类型;
  • 声明String类型变量时,使用一对“”,注意与char型变量声明进行区分;
  • String可以和8种基本数据类型变量做运算,且运算只能是连接运算;
  • 运算结果一定是String类型;
public class StringVariable {
	public static void main(String[] args) {
		String myString = "hello world";
		String myString2 = "";
		//char myChar = ''; //这里需要注意的是字符声明和字符串声明的区别,字符声明要求不能为空
		System.out.println(myString);
		System.out.println(myString2);
		int myInt = 1001;
		String myString3 = myInt + myString + true;
		System.out.println(myString3); //+:连接运算,返回结果为1001hello worldtrue
   }
}

除此之外也提供了几个示例供大家参考,可以思考下为什么结果是这样?

public class StringVariable {
	public static void main(String[] args) {
		//练习1
		char c = 'a'; //a对应ASCII码:97 A对应ASCII码:65
		int num = 10;
		String str = "hello";
		System.out.println(c + num + str); //返回结果:107hello
		System.out.println(c + str + num); //返回结果:ahello10
		System.out.println(c + (num + str)); //返回结果:a10hello
		System.out.println((c + num) + str); //返回结果:107hello
		
		//练习2
		//输出效果:*	*,星号间为tab
		System.out.println("*\t*"); //满足输出要求
		System.out.println('*' + '\t' + '*'); // 返回93,不满足输出要求
		System.out.println('*' + "\t" + '*'); // 满足输出要求
		System.out.println('*' + '\t' + "*"); // 返回51*,不满足输出要求
		System.out.println('*' + ('\t' + "*")); // 满足输出要求
	}
}

以上就是本篇的全部内容啦!欢迎大家评论、点赞、收藏和关注,我们下篇再见!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表