6.1.1 字符类型
现代的计算机是信息处理工具
char
char c = ‘a’
只能放一个字符,可以是数字,也可以是一个字母,一个汉字
执行a++后,会得到b。
汉字的加一会得到编码顺序的下一个汉字
也可以强制转换,
System.out.println((int)a)
会得到a的编码
char c = ‘\u0041’代表一个Unicode编码,结果是a,就是char c =65
字符可以做大小比较,实际上就是字符的编码比较
6.1.2 字符串
双引号括起来的
String是一个类,String的变量是对象的管理者而非所有者,就像数组
包裹类型的第一个字母也是大写的
字符串需要用new创建
String s = new String(“a string”)
创建一个String的对象,初始化为“a string”
s是这个字符串对象的管理者
或者 String s = “hello”
字符串可以用+做连接。如果连接的另一边不是字符串,是个数字之类的别的吗还是做连接
System.out.println(s+12+24)结果是 a string1224
System.out.println(s+(12+24))结果是 a string36
in.next读入一个单词,单词的分界标志是空格,包括空格,tab和换行
in.nextLine读入一整行
对象变量的赋值是共同管理同一个东西,用==比较的结果跟数组是类似的
是否是同一个东西(==),是否是相同的内容(对象管理的内容),两者是不一样的。
可以用.equals比较,如s.equals.(“bye”)
字符串的赋新值不是修改了字符串的内容,而是换了管理对象
6.2.2 字符串的操作
“.”表示对左边的那个对象进行右边的操作
字符串的大小比较(根据Unicode)s1.compareTo(s2) 结果是-1,0,+1
获得String的长度length()函数。跟数组的length不一样,那个是数组的成员,这个是函数。
访问 String里的字符
s.charAt(index),返回在index(这是一个数,代表位置)上的单个字符,第一个字符的index是0.
遍历输出:
一个汉字相当于两个字符,但仍然是+1就可以输出
不能用for-each循环
substring,得到子数组
结果是
23456789汉字
23(从标号为2的那个字符开始,到4-1那个结束,第一个标号是0)
寻找字符串的某个(些)字符 indexof(”a”)返回的结果是标号,不是第几个
System.out.println(s1.indexOf(‘3’,loc+1))
意为从第loc+1这个数字开始,找3。
前边加一句int loc = s1.indexOf(‘3’),这两个配合就可以得到第二个3的位置
不可变的操作
一些其它的操作还有很多,但这些字符串的操作都不是改变它自己,而是制造一个新的字符串。字符串的内容是不能修改的,只能根据你的要求造一个新的字符串
这样子输出的s1还是abcd,输出的s2是ABCD
6.2.3 math类 提供一些基本的数学函数 abs 绝对值 round 四舍五入 random()产生一些0到1的随机数。可以乘以100得到0到100的随机数 pow,次方,pow(2,3)得到8,几次可以是浮点的,比如说3.2次