字符类型:
char c=’\u0041’或者char c=65或者char c=’a’可以代表一个字符。其中0041是十六进制数,在Unicode中代表的含义是A
字符可以被比较大小,依据是Unicode表中的编号
逃逸字符:
- \b 回退一格
- \t 到下一个表格位
- \n 换行
- \r 回车
- \” 双引号
- \’ 单引号
- \\ 反斜杠
包裹类型:
基础类型 包裹类型:
- boolean Boolean
- char Character
- int Integer
- double Double
System.out.println(Integer.MAX_VALUE);
结果是2147483647(2的31次方减1)
包裹类型的好处:
- 获得该类型的最大最小值
.运算符
- 当需要让一个类或对象做事情的时候,用.运算符
- 运算符:
- a.length
- Interger.MAX_VALUE
- Math类:
- .abs
- .pow
- .random(随机[0,1))
- .round(四舍五入)
字符串:
字符串变量:
- String s;不是基础类型
- String是一个类,String的变量是对象的管理者而非所有者
- 就像数组变量是数组的管理者而非所有者一样
String s =new String(“a string”);
- 创建了一个string的对象
- 用“a string”来初始化这个对象
- 创建管理这个对象的变量s
- 让s管理这个对象
String s=”hello”
编译器帮你创建了一个String类的对象交给s来管理
字符串连接:
用(+)加号来连接两个字符串
“hello”+”world”—>”helloworld”
“hello”+12+24—>”hello1224”
输入字符串:
- in.next()读入一个单词,单词的标志是空格
- 空格包括空格、tab、换行
- in.nextLine()读入一整行
对象变量的赋值:
String a,String b,b=a的话,是让a,b共同管理
若要判断两字符串的内容是否相同:例如:s.equal(“bye”)
不能用==,要用.equal
字符串操作:
- 字符串是对象,对它的所有操作都是经过“.”这个运算符来进行的。
- 字符串.操作内容
- 他表示对.左边这个字符串进行右边的哪个操作
- 这里的字符串可以指变量也可以是常量
Strings大小的比较:
- 两个字符串比较大小 s1.compareTo(s2);
- 若s1比s2小,则结果为负;若相等,则为0;若大,则为正。
- compareToIgnoreCase可以不区分大小写地来比较大小
获得String里的长度:
- 用length()函数
- 例如:String name=”hellola”;name.length()结果就是7
访问String里的字符:
- s.charAt(Index)
- 返回在Index上的单个字符
- index的范围是0到length()-1
- 第一个字符的Index是0,和数组一样
- 值不能用for-each循环来遍历字符串
得到子串:
- s.substring(n)得到从n号位置到末位的全部内容
- s.substring(b,e)得到从b好位置到e号位置之前的内容(不包括e号位置!)
寻找字符:
- s.indexOf(c)
- 得到的c字符所在位置,-1表示不存在
- s.indexOf(c,n)
- 从n号位置开始寻找c字符
- s.indexOf(t)
- 找到字符串t所在位置
- 从右边开始找:
- s.lastIndexOf(c)
- s.lastIndexOf(c,n)
- s.lastIndexOf(t)
其他:
- s.startsWith(t)是否以t开头
- s.endsWith(t)
- s.trim()两端空格删掉
- s.replace(c1,c2)c1换成c2
- s.toLowerCase()都变成小写
- s.toUpperCase()
不可变的String
- 所有的字符串都是不可变的,对它们的操作都是创造新的字符串出来
可以在switch-case中使用字符串