Java基础第三弹(数学函数、字符和字符串)

常用数学函数

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位数字。可以在标识符中指定宽度和长度。

发布了14 篇原创文章 · 获赞 2 · 访问量 436

猜你喜欢

转载自blog.csdn.net/weixin_43876357/article/details/100178042