常用类
Scanner类
用于获取键盘的输入
方法
利用System.in来把输入内容转换为一个流
Scanner s = new Scanner(System.in);
成员方法
- next()方法,获取输入的字符串
读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
// 从键盘接收数据
Scanner scan = new Scanner(System.in);
// next方式接收字符串
System.out.println("next方式接收:");
// 判断是否还有输入
if (scan.hasNext()) {
String str1 = scan.next();
System.out.println("输入的数据为:" + str1);
}
scan.close();
}
}
next和nextLine的区别
next()方法读取到空白符就结束;
nextLine()读取到回车结束;
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空格。
String类
不可变性:
字符串是常量,它的值在创建之后不能更改
只能是变量引用地址的改变,不能是值的改变
字符串变量相加:先开空间,再加内容
字符串常量相加:先加,再找,没有再开空间
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了
如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。
常用方法
比较字符串的内容是否相同,严格区分大小写
boolean equals(Object obj):
比较字符串的内容是否相同,不考虑大小写
boolean equalsIgnoreCase(String str):
判断字符串的内容是否为空
boolean isEmpty():
返回字符串的长度。字符的个数。
int length():
返回字符串中指定位置的字符。
char charAt(int index):
返回指定"字符"在字符串中第一次出现的位置
int indexOf(int ch):
返回指定"字符串"在字符串中第一次出现的位置
int indexOf(String str):
返回从指定位置开始到指定位置结束的子串,左闭右开
String substring(int start,int end):
字符的替换
String replace(char old,char new)
StringBuffer
由于字符串是不变的,我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题
构造方法
声明字符串长度
public StringBuffer(int capacity)
例:创建一个长度为10的字符串
StringBuilder sb = new StringBuilder(10);
创建对象时直接赋值字符串
public StringBuffer(String str)
例:
StringBuffer sBuffer = new StringBuffer("hello");
成员方法
- 添加功能
public StringBuffer append(String str)
public StringBuffer insert(int offset,String str)
-删除功能
public StringBuffer deleteCharAt(int index)
public StringBuffer delete(int start,int end)
- 替换功能
public StringBuffer replace(int start,int end,String str)
- 反转功能
public StringBuffer reverse()
- 截取功能
public String substring(int start)
public String substring(int start,int end)
Arrays
成员方法
- 转数组为字符串
public static String toString(int[] a)
- 排序
public static void sort(int[] a)
- 二分查找
public static int binarySearch(int[] a,int key)
Math类
主要记录一下Math.random的用法
这个方法获取的随机数范围为 0.0 =< Math.random < 1.0
- 若需要[x,y)范围的伪随机数
Math.random()*(y-x)+x
- 若需要[x,y]范围的伪随机整数
(int)Math.random()*(y-x+1)+x
异常处理
抛出异常:throw,throws
捕获异常:try,catch,finally
try…catch…
执行流程:
程序从try里面的代码开始执行
出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统
当Java运行时系统接收到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理执行完毕之后,程序还可以继续往下执行
例如:
public static void method(){
try {
int[]arr = {1,2,3};
System.out.println(arr[3]);
} catch (ArrayIndexOutofBoundsException e){
System.out.println("你访间的数组的索引不存在");
}
throws&throw
public static void method() throws ArrayIndexOutOfBoundsException {
int[]arr = {1,2,3};
system.out.printin(arr=[3]
}
throw
关键字,用于方法内部,抛出异常对象
public void checkScore( int score) {
if(score<e || score>100){
throw new ScoreException();
} else {
System.out.println("分数正常")
}
}
Throwable
成员方法
public static void method(){
try {
int[]arr = {1,2,3};
System.out.println(arr[3]);
} catch (ArrayIndexOutofBoundsException e){
e.printStackTrace();
}