常用数学函数

Math类中其他有用的方法分为三类:三角函数方法指数函数方法服务方法

其中服务方法包括取整、求最小值、求最大值、求绝对值和随机方法。除了这些方法之外,Math类还提供了两个很用的double型变量,PI(Π)和E(自然对数的底)。可以在任意程序中用Math.PI和Math.E的形式来使用这两个变量。

    Math类中的指数函数方法

  方法

描述

exp(x)

返回e的x次方

log(x)

返回x的自然底数

log10(x)

返回x的以10为底的对数

pow(a,b)

返回a的b次方

sqrt(x)

对于x>=0的数字,返回x的平方根

                                                                             Math类中的取整方法

方法

描述

ceil(x)

x向上取整为它最接近的整数。该整数作为一个双精度值返回。

floor(x)

x向下取整为它最接近的整数。该整数作为一个双精度值返回。

rint(x)

x取整为它最接近的整数。如果x与两个整数的距离相等,偶数的整数作为一个双精度值返回。

round(x)

如果x是单精度数,返回(int)Math.floor(x+0.5);如果x是双精度数,返回(long)Math.floor(x+0.5)

min、max和abs方法

min和max方法用于返回两个数的最小值和最大值。abs方法以返回一个数的绝对值。

random方法

生成大于等于0.0且小于1.0的double型随机数。可以使用它编写简单的表达式,生成任意范围的随机数。例如:a+Math.random()*b——>返回a--a+b之间的一个随机整数,不包括a+b。

Math类在程序中使用,但是并没有导入,因为它在java.lang包中。在一个java程序中,java.lang包中的所有类是隐式导入的。

字符数据类型和操作

特殊字符的转义序列

java定义了一种特殊的标记来表示特殊字符,这种标记称为转义序列,转义序列由反斜杠( \ )后面加上一个字符或者一些数字位组成。

System.out.println("He said\"Java is fun\"");

它的输出是:

He said "Java is fun"

注意,符号 \ 和 " 一起代表一个字符。

                                                                                    转义序列 

转义序列

名称

\b

退格键

\t

Tab键

\n

换行符

\f

换页符

\r

回车符

\\

反斜杠

\"

双引号 

反斜杠 \ 被称为转义字符。他是一个特殊字符。要显示这个字符,需要使用转义序列 \\ 。比如,下面的代码:

System.out.println("\\t is a tab character");

显示

\t is a tab character

判断是大写字母、小写字母、数字字符

if(ch >= 'A' && ch <= 'Z')
    System.out.println(ch + "is an uppercase letter");
else if(ch >= 'a' && ch <= 'z')
    System.out.println(ch + "is an lowercase letter");
else if(ch >= '0' && ch <= '9')
    System.out.println(ch + "is an numeric letter");

为了方便,Java的Character类提供了下列方法用于进行字符测试:
 

方法

描述

isDigit(ch)

如果指定的字符是一个数字,返回true

isLetter(ch)

如果指定的字符是一个字母,返回true

isLetterOrDigit(ch)

如果指定的字符是一个字母或者数字,返回true

isLowerCase(ch)

如果指定的字符是一个小写字母,返回true

isUpperCase(ch)

如果指定的字符是一个大写字母,返回true

toLowerCase(ch)

返回指定的字符的小写形式

toUpperCase(ch)

返回指定的字符的大写形式

String类型

String实际上与System类和Scanner类一样,都是java库中的一个预定义的类。String类型不是基本类型,而是引用类型。任何java类都可以将变量表示为引用变量。使用引用类型声明的变量称为引用变量,它引用一个对象。这里,message是一个引用变量,它引用一个内容为Welcome to Java的字符串对象。

String message = "Welcome to Java";

求字符串长度

String message = "Welcome to Java";
System.out.println("The length of " + message + "is" + message.length());

注意,""表示空字符串,并且"".length()为0.

从字符串中获取字符

message.charAt(0)返回字符W

注意:要确保使用的下标不会超过 s.length()-1。

连接字符串

可以使用concat方法连接两个字符串。例如,如下所示的语句将字符串s1和s2连接构成s3:

String s3 = s1.concat(s2);

因为字符串连接在程序设计中应用非常广泛,所以Java提供了一种实现字符串连接的简便方法。可以使用加号(+)连接两个或多个字符串。因此,上面的语句等价于:

String s3 = s1 + s2;
//String myString = message + " and " + "HTML"

如果操作数之一不是字符串(比如,一个数字),非字符串值转换为字符串,并于另外一个字符串连接。示例:

String s = "Chapter" + 2;//s becomes Chapter2

字符串的转换

方法toLowerCase( )返回一个新字符串,其中所有字母小写;方法toUpperCase( )返回一个新字符串,其中所有字母大写;方法trim( )通过删除字符串两端的空白字符返回一个新字符串。字符' '、\t、\f、\r或者\n被称为空白字符

"Welcome".toLowerCase();//返回一个新字符串welcome
"Welcome".toUpperCase();//返回一个新字符串WELCOME
"\t Good Night \n".trim();//返回一个新字符串Good Night

从控制台读取字符串

为了从控制台读取字符串,调用Scanner对象上的next()方法。next()方法读取以空白字符结束的字符串(即' '、'\t'、'\f'、'\r'或'\n')。可以使用nextline()方法读取一整行文本。nextline()方法读取以按下回车键为结束标志的字符串。

重要警告:为了避免输入错误,不要在nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()和next()之后使用nextline()。

字符串比较

方法

描述

equals(s1)

如果该字符串等于字符串s1,返回true

equalsIgnoreCase(s1)

如果该字符串等于字符串s1,返回true;不区分大小写

compareTo(s1)

返回一个大于0、小于0、等于0的整数,表明一个字符串是否大于、等于或小于s1

compareToIgnoreCase(s1)

和compareTo一样,除了比较是区分大小写的之外

startsWith(prefix)

如果字符串以特定的前缀开始,返回true

endsWith(prefix)

如果字符串以特定的后缀开始,返回true

contains(s1)

如果s1是该字符串的子字符串,返回true

  

操作符==只能检测string1和string2是否指向同一个对象,但它不会告诉你他们的内容是否相同。因此,不能使用==操作符判断两个字符串变量的内容是否相同。

compareTo方法也用来对两个字符串进行比较。如果s1和s2相等,那么该方法返回值为0;如果按字典顺序(即以Unicode码的顺序)s1小于s2,那么方法返回值小于0;如果按字典顺序s1大于s2,方法返回值大于0.

方法compareTo返回的实际值是根据s1和s2从左到右第一个不同字符之间的距离得出的,例如,假设s1为“abc”,s2为“abg”,那么s1.compareTo(s2)返回-4.首先比较的是s1和s2中第一个位置的两个字符(a与a)。因为它们相等,所以比较第二个位置的两个字符(b与b)。因为他们也相等,所以比较第三个位置的两个字符(c与g)。由于字符c比字符g小4,所以比较之后返回-4。

警告:如果使用像>、>=、<或<=这样的比较操作符比较两个字符串,就会发生语法错误。替代的方法就是使用s1.compareTo(s2)来进行比较。

获得子字符串

方法s.charAt(index)可用于提取字符串s中的某个特定字符。也可以使用String类中的substring方法从字符串中提取字串。

方法

描述

substring(beginIndex)

返回该字符串的子串,从特定位置beginIndex的字符开始到字符串的结尾

substring(beginIndex,endIndex)

返回该字符串的字串,从特定位置beginIndex的字符开始到下标为endIndex-1的字符。注意,位于endIndex位置的字符不属于该子字符串的一部分

 

获取字符串中的字符或者子串

方法

描述

indexOf(ch)

返回字符串中出现的第一个ch的下标。如果没有匹配的,返回-1

indexOf(ch,fromIndex)

返回字符串中fromIndex之后出现的第一个ch的下标。如果没有匹配的,返回-1.

indexOf(s)

返回字符串中出现的第一个字符串s的下标。如果没有匹配的,返回-1.

indexOf(s,fromIndex)

返回字符串中fromIndex之后出现的第一个字符串s的下标。如果没有匹配的,返回-1.

lastIndexOf(ch)

返回字符串中出现的最后一个ch的下标。如果没有匹配的,返回-1.

lastIndexOf(ch,fromIndex)

返回字符串中fromIndex之前出现的最后一个下标。如果没有匹配的,返回-1.

lastIndexOf(s)

返回字符串中出现的最后一个字符串s的下标。如果没有匹配的,返回-1.

lastIndexOf(s,fromIndex)

返回字符串中fromIndex之前出现的最后一个字符串s的下标。如果没有匹配的,返回-1.

 

字符串和数字间的转换

可以将数值型字符串转换为数值。要将字符串转换为int值,使用Integer.parseInt方法,如下所示:

int intVaule = Integer.parseInt(intString);
//intString是一个数值型字符串,例如"123"

要将字符串转换为double值,使用Double.parseDouble方法,如下所示:

double doubleVaule = Double.parseDouble(doubleString);
//doubleString 是一个数值型字符串,例如"123.45"

可以将数值转换为字符串,只需要简单使用字符串的连接操作符,如下所示:

String s = number + "";

格式化控制台输出

可以使用System.out.printf方法在控制台上显示格式化输出。

double amount = 12618.98;
double interestRate = 0.0013;
double interest = amount * interestRate;
System.out.printf("Interest is $%4.2f",interest);
//Interest is $16.40

%4.2f叫做格式标识符,其中4为域宽度,2为精度,f为转换码。

调用这个方法的语法是:System.out.printf(format,item1,item2,...,itemk)这里的format是指一个由子串和格式标识符构成的字符串

常用的格式标识符

标识符

输出

标识符

输出

%b

布尔值

%f

浮点数

%c

字符

%e

标准科学记数法形式的数

%d

十进制整数

%s

字符串

 

条目与标识符必须在次序、数量和类型上匹配。默认情况下,浮点值显示小数点后6位数字。可以在标识符中指定宽度和长度。