个人笔记⑩
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
1.字符串都是对象
2.一旦初始化,就不可以更改,因为是常量
3.通过String类的构造函数可知,将字节数组或字符数组转成字符串
1.获取。字符串查找
1.1 字符串中的包含的字符数,也就是字符串的长度。
int length():获取长度。
1.2 根据位置获取位置上某个字符。
char charAt(int index):
1.3 根据字符获取该字符在字符串中位置。
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置,也就是ch位置处后面的所有字符。
int indexOf(int ch, int fromIndex) :从fromIndex指定位置开始,获取ch在字符串中出现的位置,也就是ch和fromIndex之间的字符,包括ch处,不包括fromIndex处。 (包括左边,不包括右边)
2.判断。
2.1 字符串中是否包含某一个子串。
boolean contains(String str):
特殊之处:indexOf(String str):可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在
2.2 字符中是否有内容。
boolean isEmpty(): 原理就是判断长度是否为0.
2.3 字符串是否是以指定内容开头。
boolean startsWith(str);
2.4 字符串是否是以指定内容结尾。
boolean endsWith(str);
2.5 判断字符串内容是否相同。复写了Object类中的equals方法。
boolean equals(str);
3.转换。以及替换字符串
将字符数组转成字符串。把字符替换其他字符
replaceFirst() 方法用于将目标字符串中匹配某正则表达式的第一个子字符串替换成新的字符串
replaceAll() 方法用于将目标字符串中匹配某正则表达式的所有子字符串替换成新的字符串
4.字符串拼接
String 字符串拼接可以使用“+”运算符或 String 的 concat(String str) 方法。
5.字符大小写互换
toLowerCase() 方法可以将字符串中的所有字符全部转换成小写,而非字母的字符不受影响
toUpperCase() 则将字符串中的所有字符全部转换成大写,而非字母的字符不受影响
6.去除字符串中的空格
如果不确定要操作的字符串首尾是否有空格,最好在操作之前调用该字符串的 trim() 方法去除首尾空格,然后再对其进行操作。
7.提取子字符串
substring(int beginIndex) 形式,按字符截取,从1开始
此方式用于提取从索引位置开始至结尾处的字符串部分
8.分割字符串
split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中
习题
1、假如indexOf()方法未能找到所指定的子字符串,那么其返回值为?( )
A、false
B、0
C、-1
D、以上答案都不对
2、String s = “abcdedcba”;则s.substring(3,4)返回的字符串是以下选项中的哪个?
A、cd
B、de
C、d
D、e
3、下列方法中,用于判断字符串是否相等的是()
A、boolean contains(CharSequence cs)
B、String toLowerCase()
C、boolean equals(Object anObject)
D、boolean isEmpty()
除了通过 String 类创建和处理字符串之外,还可以使用 StringBuffer 类来处理字符串。StringBuffer 类可以比 String 类更高效地处理字符串。就是字符串缓冲区,其实就是一个容器。
因为 StringBuffer 类是可变字符串类,创建 StringBuffer 类的对象后可以随意修改字符串的内容。每个 StringBuffer 类的对象都能够存储指定容量的字符串,如果字符串的长度超过了 StringBuffer 类对象的容量,则该对象的容量会自动扩大。
StringBuffer的主要StringBuffer是append和insert方法。 append方法总是在缓冲区的末尾添加这些字符; insert方法将insert添加到指定点。
容器对象还提供了对数据的操作功能,如:增加,修改,删除
System 类位于 java.lang 包,代表当前 Java 程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。由于该类的构造方法是 private 的,所以无法创建该类的对象,也就是无法实例化该类。
System 类提供了一些类变量和类方法,允许直接通过 System 类来调用这些类变量和类方法。
System 类有 3 个静态成员变量,分别是 PrintStream out、InputStream in 和 PrintStream err。
- PrintStream out
标准输出流。此流已打开并准备接收输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
例如,编写一行输出数据的典型方式是:
System.out.println(data);
- InputStream in
标准输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
- PrintStream err
标准的错误输出流。其语法与 System.out 类似,不需要提供参数就可输出错误信息。也可以用来输出用户指定的其他信息,包括变量的值。
习题
1、下列关于System类中getProperties()方法的描述中,正确的是?()
A、getProperties()方法用于获取当前的操作系统的属性
B、getProperties()方法用于获取当前JVM的属性
C、getProperties()方法用于获取指定键指示的操作系统属性
D、getProperties()方法用于获取指定的JVM的属性
在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数、对数、平方根和三角函数等。Math 类位于 java.lang 包,它的构造方法是 private 的,因此无法创建 Math 类的对象,并且 Math 类中的所有方法都是类方法,可以直接通过类名来调用它们。
包含 E 和 PI 两个静态常量,正如它们名字所暗示的,它们的值分别等于 e(自然对数)和 π(圆周率)。
max,min,abs求最大值、最小值和绝对值
求整运算
三角函数运算
指数运算
习题
1、以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?
A、ceil()
B、floor()
C、abs()
D、random()
2、若double val = Math.ceil(-11.9);,则val的值是?( )
A、11.9
B、-11.0
C、-11.5
D、-12.0
3、下列是Math类中的一些常用方法,其中用于获取大于等于0.0且小于1.0的随机数的方法是?( )
A、random()
B、abs()
C、sin()
D、pow()
在 Java 中要生成一个指定范围之内的随机数字有两种方法:一种是调用 Math 类的 random() 方法,一种是使用 Random 类。
构造方法
(1)public Random()
该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象。
(2)public Random(long seed)
该构造方法可以通过制定一个种子数进行创建。
常用方法
(1)public boolean nextBoolean()
该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率。
(2)public double nextDouble()
该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。
(3)public int nextInt()
该方法的作用是生成一个随机的int值,该值介于int的区间,也就是-231到231-1之间。
如果需要生成指定区间的int值,则需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。
(4)public int nextInt(int n)
该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。
如果想生成指定区间的int值,也需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。
(5)public void setSeed(long seed)
该方法的作用是重新设置Random对象中的种子数。设置完种子数以后的Random对象和相同种子数使用new关键字创建出的Random对象相同。
习题
1、要产生[20,999]之间的随机整数可以使用以下哪个表达式?
A、(int)(20+Math.random()*97)
*B、20+(int)(Math.random()980)
C、(int)Math.random()*999
D、20+(int)Math.random()*980
2、下列是Random类的一些常用方法,其中能获得指定范围随机数的方法是?( )
A、nextInt()
B、nextLong()
C、nextBoolean()
D、nextInt(int n)