1.字符类型
1.1字符类型
-
单个的字符是一种特殊的类型:char
-
用单引号表示的字符:‘a’,‘1’
-
Java使用Unicode来表示字符,可以表达包括汉字在内的多种文字
-
1.1.1字符计算
char c = 'A';
c++;
System.out.println(c);
输出结果为:B
int i = 'Z'-'A';
System.out.println(i);
输出结果为:25
-
一个字符加一个数字得到Unicode码表中的那个数之后的字符
-
两个字符的减,得到它们在表中的距离
-
char也可以和int之间相互赋值
1.1.2大小写转换
- 字母和数字在Unicode表中是顺序排列的
- ‘a’-'A’可以得到两段之间的举例,
- a+‘a’-'A’可以把一个大写字母变成小写字母
1.1.3字符大小
- 字符可以比较大小,依据是它们在Unicode表中的编号
- 0>9
- A>Z
- a>Z
1.2逃逸字符
- 用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠""开头,后面跟上另一个字符,这两个字符合起来,组成了一个字符
字符 | 意义 | 字符 | 意义 |
---|---|---|---|
\b | 回退一格 | " | 双引号 |
\t | 到下一个表格位 | ’ | 单引号 |
\n | 换行 | \ | 反斜杠本身 |
\r | 回车 |
2.包裹类型
2.1包裹类型
基础类型 | 包裹类型 |
---|---|
boolean | Boolean |
char | Character |
int | Integer |
double | Double |
2.1.1包裹类型的用处
-
获得该类型的最大最小值
Integer.MIN_VALUE Integer.MAX_VALUE
2.2Math类
3.字符串
- 用双引号括起来的0个或多个字符就是一个字符串字面量
- “hello”
- “1”
3.1字符串变量
- String s;
- String是一个类,String的变量是对象的管理者而非所有者
- 类似于数组变量是数组的管理者而非所有者
3.1.1 new=创建
String s = new String("a string");
- 创建了一个String的对象
- 用"a string"初始化这个对象
- 创建管理这个对象的变量s
- 让s管理这个对象
3.1.2 字符串连接
- 用加号(+)可以连接两个字符串
- “hello”+“world”–>“helloworld”
- 当这个+的一边是字符串而另一边不是时,会将另一边表达为字符串然后做连接
- "I’m "+18–>“I’m 18”
- 1+2+“age”–>“3age”
- “age”+1+2–>“age12”
3.1.3 输入字符串
in.next();
- 读入一个单词,单词的标志是空格、tab、换行
in.nextLine();
- 读入一整行
3.1.4 字符串变量
- 字符串变量中,a、b是管理者,不是所有者。b=a是b和a都管理a的字符串
- int变量中,a、b是所有者,b=a是改变本身
3.1.5 比较两个String
if(input == "bye"){
...
}
- ==比较是否同一个
if(input.equals("bye")){
...
}
- equals比较内容是否相同
3.2 字符串操作
- 字符串是对象,对它的所有操作都是通过"."这个运算符来进行的
- 字符串.操作
- 它表示对.左边的这个字符串做右边的那个操作
- 这里的字符串可以是变量也可以是常量
3.2.1 Strings大小的比较
- 两个字符串可以比较大小:
s1.compareTo(s2)
如果s1比s2小,那么结果是负的;
如果s1和s2相等,那么结果是0;
如果s1比s2大,那么结果是正的;
compareToIgnoreCase//可以不区分大小写地比较大小
3.2.2 获得String的长度
String name = "Hello";
name.length();
3.2.3 访问String里的字符
s.charAT(index)
- 返回在index上的单个字符
- index的范围是0到length()-1
- 第一个字符的index是0,和数组一样
- 但是不能用for-each循环来遍历字符串
3.2.4 得到子串
s.substring(n)
- 得到从n号位置到末尾的全部内容
s.substring(b,e)
- 得到从b号位置到e号位置之前的内容
3.2.5 寻找字符
s.index0f(c)
- 得到c字符所在的位置,-1表示不存在
s.index0f(c,n)
- 从n号位置开始寻找c字符
s.index0f(t)
- 找到字符串t所在的位置
s.lastIndex0f(c)
s.lastIndex0f(c,n)
s.lastIndex0f(t)
- 从右边开始找,各部分同上
3.2.6 其它String操作
s.startsWith(t)
s.endsWith(t)
s.trim()
s.replace(c1,c2)
s.toLowerCase()
s.toUpperCase()
3.2.7 不可变的String
- 所有的字符串都是不可变的,对它们的操作的结果是制造新的字符串出来
String s = "abc";
System.out.println(s.toUpperCase());
System.lut.println(s);
3.2.8 在switch-case中使用字符串
switch(s){
case "this"....break;
case "that"....break;
}
.7 不可变的String
- 所有的字符串都是不可变的,对它们的操作的结果是制造新的字符串出来
String s = "abc";
System.out.println(s.toUpperCase());
System.lut.println(s);
3.2.8 在switch-case中使用字符串
switch(s){
case "this"....break;
case "that"....break;
}