字符串类型 String
# 数据类型?
首先,要明确**String
不是基本数据类型,属于引用数据类型。**
翻译为:字符串。
String
是日常开发用的很多一个种变量。
# 使用方式
String的使用方式与数据类型一致,声明String类型变量时,用一对双引号定义。
例如:
String str = "abcd";
String str2 = "你好!世界!";
String str3 = "";
//char c = ''; // 编译不通过。
1
2
3
4
2
3
4
# 运算
String可以和8中基本数据类型变量做运算,且运算只能是连接运算
,运算结果也只能是String类型。
int number = 1001;
String numberStr = "学号";
String info = numberStr + number; // 学号1001
boolean b1 = true;
String info2 = info + b1; //学号1001true
1
2
3
4
5
2
3
4
5
+
就是连接运算。
# 练习1
char c = 'a';
int num = 10;
String str = "hello";
System.out.println(c + num + str);
System.out.println(c + str + num);
System.out.println(c + (num + str));
System.out.println((c + num) + str);
System.out.println(str + num + c);
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
请问上面5种结果分别输出什么?为什么?
- 第一种结果是
107hello
因为c
和num
先运算,a
是97,所以就变成107,再和str
做连接运算。
- 第二种结果是
ahello10
c
+str
是连接运算,再和num
做连接运算
- 第三种结果是
a10hello
num
和str
先左连接运算,c
再和右边的结果做连接运算。
- 第四种结果和第一种结果一样。
- 第五种结果是
hello10a
str
和num
连接运算,然后再和c
做连接运算。
# 练习2
如何输出* *,(中间是tab键的空格)下面能达到效果吗?
// 第一种,可以
System.out.println("* *");
// 第二种,不可以,因为char和char之间是算术运算。
System.out.println('*' + '\t' + '*'); // 93
// 第三种,可以
System.out.println('*' + "\t" + '*');
// 第四种,不可以,因为第一个和第二个变量都是char,它们是算术运算
System.out.println('*' + '\t' + "*");// 51*
// 第五种,可以
System.out.println('*' + ('\t' + "*"));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 总结
String
属于引用数据类型,翻译为:字符串。- 声明
String
类型变量时,使用一对""。 String
可以和8中基本数据类型变量做运算,且运算只能是连接运算
- 运算的结果仍然是
String
类型。
帮我改善此页面 (opens new window)
上次更新: 2020/12/18, 12:50:58