第四章:数学函数、字符和字符串
math类
Math是final类:在java.lang.Math中,所有数学函数都是静态方法
在一个java程序中,java.lang包中的所有类是隐式导入的。
- 三角函数方法
『此处需要插入图』
- 指数函数方法
『此处需要插入图』
- 取整方法
『此处需要插入图』
- min、max、abs方法
max(double x,double y):传回x、y较大数
min(double
x,double y):传回x、y较小数
下面是正确的: Math.max(2.5,3) 。返回3.0。
abs方法返回绝对值
- random方法
Math.random方法生成[0.0,1.0)之间的double类型的随机数
a+(int)(Math.random( )*b) 返回[a, a+b)
a+(int)(Math.random( )*(b+1)) 返回[a, a+b]
字符
java内字符采用unicode码。一个字符两个字节,用\u开头的四位十六进制数表示。从 \'\u0000\'到\'\u007f\'对应128个ascii码。
character类的方法如下图:
『此处需要插入图』
类型转换和整形直接量类型转换类似,如下:
byte b = \'a\';//正确 int i = \'a\';//正确 b = \'\ufff4\';//错误 b = (byte)\'\ufff4\';//正确
字符串
String类:是一个final类。表示一个固定长度的字符序列,实例化后字符不能改
- string对象的简单方法
『此处需要插入图』
- string对象的比较方法
『此处需要插入图』
注意:操作符==只能检查来个srting变量是否指向同一对象;equal方法判断两个string变量的内容是否相同。
- string类包含获取子串的方法
『此处需要插入图』
- 字符串和数字间的转换
valueOf方法将基本数据类型转换为字符串。例如
String s1 = String.valueOf(1.0); //“1.0”
String s2 = String.valueOf(true); //“true”
字符串转换为基本类型
Double.parseDouble(str)
Integer.parseInt(str)
Boolean.parseBoolean(str)
- 格式化控制台输出
格式化字符串: % [-+ 0,][width][.precision]格式描述符
String.format(format, item1, item2, …); //+及空格标志用于显示正负号
格式描述符:宽度不够时不会截断
%b 布尔值
%c 字符
%d 十进制整数
%f 浮点数,包括double类型
%e , %E科学计数法
%s 字符串
String.format(“格式$:%1d,%2s”, 99,“abc”); //结果”格式$:99,abc“
- 控制台输入
Scanner类(java.util.Scanner)
Scanner scanner = new Scanner(System.in);
//构造函数Scanner的参数类型也可为java.io.File
double d = scanner.nextDouble( );
方法:
nextByte( )、nextShort( )、nextInt( )
nextLong( )、nextFloat( )、nextDouble( )
next( ) 、nextLine( )
next( )方法读取以空白字符(\' \'、\'\t\'、\'\f\'、\'\r\'、\'\n\')结束的字符串
nextLine( )方法读取一行字符串,以回车键为结束标志。
读取单个字符,需要先读取字符串,然后再获取字符串的第一个字符。
- StringBuilder与StringBuffer
StringBuilder与StringBuffer(final类)初始化后还可以修改字符串。
StringBuffer修改缓冲区的方法是同步的,更适合多任务环境。
StringBuilder在单任务模式下与StringBuffer工作机制类似。
方法如下:
『此处需要插入图』