1.Scanner类
一个可以解析基本类型和字符串的文本扫描的类
使用步骤:
1.1 导包:import 包名.列名;
例:import Java.util.Scanne
1.2 创建对象 : 数据类型 变量名 = new 数据类型 (参数列表);
例:Scanner sc = new Scanner (System.in);
1.3 调用方法 :变量名.方法名;
例:int i=sc.nextInt(); //接受一个键盘输入的Int类型的整数
1.4 练习:键盘输入三个整数,获取最大值:
public class Demo01 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个整数:");
int a=sc.nextInt();
System.out.println("请输入第二个整数:");
int b=sc.nextInt();
System.out.println("请输入第三个整数:");
int c=sc.nextInt();
int temp=(a>b?a:b);
int max=(temp>c?temp:c);
System.out.println(max);
}
2.匿名对象
没有变量名的对象叫做匿名对象
2.1 匿名对象的格式:
new 类名(参数列表);
例:new Scanner(System.in);
2.2 匿名对象直接调用方法:
例: new Scanner(System.in).nextInt();
2.3 匿名对象作为方法的参数:
public class Demo01 {
public static void main(String[] args) {
input(new Scanner(System.in));
}
private static void input(Scanner sc) {
System.out.println(sc);
}
}
2.4 匿名对象作为方法的返回值:
public class Demo01 {
public static void main(String[] args) {
Scanner sc = getScanner();
System.out.println(sc);
}
private static Scanner getScanner() {
return new Scanner(System.in);
}
}
3.Random类
此类的实例用于生成伪随机数
3.1 使用步骤;
第一步 导包: java.util.Random;
第二步 创建对象:Random r =new Random();
第三步 调用成员方法: r.nextInt(int n); //返回一个为随机数,范围在0-n之间(不包括n)。
3.2 练习:猜数小游戏,随机生成一个1-100之间的数number,玩家猜一个数guessnumber,和num之间进行对不,系统会提示猜大了还是小了。猜中游戏结束。玩家最多只能猜10次,10次猜不中,游戏结束。
import java.util.Random;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Random random=new Random();
int number=random.nextInt(100)+1;//0-100的随机数是0-99之间,故加1
Scanner sc=new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println("请输入你猜的数:");
int guessnumber=sc.nextInt();
if(guessnumber>number){
System.out.println("猜的数字大了!");
}else if(guessnumber<number){
System.out.println("猜的数字小了!");
}else {
System.out.println("猜对了!");
break;
}
if(i==9){
System.out.println("10次过去了游戏结束!");
break;
}
}
}
}
4.ArrayList类
数组的长度是固定的,无法适用于数据变化的需求,为了解决这个问题,Java提供了另一个容器lava.util.ArrayList集合类,能够让我们更加方便的存储和操作数据对象。
4.1 概念:ArrayList集合是大小可变的数组的实现,存储在其中的数据称为元素。ArrayList类提供了一些方法来操作其内部存储的元素。ArrayList可以不断的添加元素,其大小可以自动的增长。
Java.util.ArrayList<E>:该类需要导包后才能使用
<E>表示一种制定的数据类型,叫做泛型,在E出现的地方使用一种引用数据类型将其替换即可。
例:ArrayList<String> list =new ArrayList<>();
4.2 常用的方法
public boolean add(E e) :将指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
4.3 ArrayList集合存储基本数据类型
ArrayList结合不能存储基本数据类型,只能存储引用类型的数据,但是可以存储基本数据类型的包装类。
基本类型 | 基本类型的包装类 |
byte | byte |
short | short |
int | Integer |
long | long |
float | float |
double | double |
char | character |
Boolen | Boolen |
4.4 练习:定义获取所有偶数集合的方法(ArrayList 类型作为返回值)
public class Demo01 {
public static void main(String[] args) {
Random r=new Random();
ArrayList<Integer> list1=new ArrayList<>();
for (int i = 0; i < 20; i++) {
list1.add(r.nextInt(1000)+1);
}
ArrayList<Integer> arr = getArraylist(list1);
System.out.print("[");
for (int i = 0; i < arr.size(); i++) {
if(i== arr.size()-1){
System.out.println(arr.get(i)+"]");
}else {
System.out.print(arr.get(i)+",");
}
}
}
private static ArrayList<Integer> getArraylist(ArrayList<Integer> list1) {
ArrayList<Integer> list2=new ArrayList<>();
for (Integer i : list1) {
if(i%2==0){
list2.add(i);
}
}
return list2;
}
}
5 String类
java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"abc" )都可以被看作是实现此类的实
例。
5.1 string字符串的特点
第一:字符串不变:字符串的值在创建后不可改变
String s1="abc";
s1+="d";
sout(s1);//"abcd"
此时内存中有“abc”和“abcd”两个字符串,s1从指向 “abc”,改变了指向 “abcd”。
第二:因为字符串是不可改变的,所以字符串可以被共享。
String s1="abc";
String s1="abc";
此时内存中只有个“abc”对象被创建了,同时被S1和S2共享,S1和S2指向同一个内存地址。
第三:字符创“abc”等效于 char [ ] data={‘a’,'b','c'}。
因为字符串String底层是靠字符数组实现的。
5.2 使用步骤
构造方法:public String() :初始化新创建的 String对象,以使其表示空字符序列。
例:String str = new String();
public String(char[] value) :通过当前参数中的字符数组来构造新的String。
例;char chars[] = {'a', 'b', 'c'};
String str2 = new String(chars);
public String(byte[] bytes) :通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String。
例:byte bytes[] = { 97, 98, 99 };
String str3 = new String(bytes);
5.3 常用方法
public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。
public class Demo01 {
public static void main(String[] args) {
String s1="abc";
String s2="abc";
String s3="ABC";
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//false
System.out.println(s1.equalsIgnoreCase(s3));//true
System.out.println(s1==s2);//true S1和S2 指向同一个内存地址。
}
}
public int length () :返回此字符串的长度。
public String concat (String str) :将指定的字符串连接到该字符串的末尾。
public char charAt (int index) :返回指定索引处的 char值。
public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。没有出现就返回-1
public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾
public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。
public class Demo01 {
public static void main(String[] args) {
String s1="abcefd";
System.out.println(s1.length());//6
System.out.println(s1.concat("efg"));//abcefdefg
System.out.println(s1.charAt(2));//c
System.out.println(s1.indexOf("a"));//0
System.out.println(s1.substring(1));//bcefd
System.out.println(s1.substring(0,2));//ab
}
}
public char[] toCharArray () :将此字符串转换为新的字符数组。
public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换。
public class Demo01 {
public static void main(String[] args) {
String s1="abcefd";
for (int i = 0; i < s1.toCharArray().length; i++) {
System.out.print(s1.toCharArray()[i]+",");//a,b,c,e,f,d,
}
for (int i = 0; i < s1.getBytes().length; i++) {
System.out.print(s1.getBytes()[i]+",");//97,98,99,101,102,100,
}
System.out.println(s1.replace("ab","AB"));//ABcefd
}
}
public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。
public class Demo01 {
public static void main(String[] args) {
String s1="ab,cefd";
String[] sp = s1.split(",");
for (String s : sp) {
System.out.println(s);//ab cefd
}
}
}
6.Arrays类
6.1 概念:
Java.util.Arrays类 包含了操作数组的各种方法。Array类中的所有方法都为静态方法,调用简单
6.2 Array中常用的方法:
public static String toString(int[] a) :返回指定数组内容的字符串表示形式。
public class Demo01 {
public static void main(String[] args) {
int[] arr={1,2,35,6};
System.out.println(arr);//[I@10f87f48 打印出来的地址值
System.out.println(Arrays.toString(arr));//[1, 2, 35, 6] 输出数组内容的字符串表现形式
}
}
public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。
public class Demo01 {
public static void main(String[] args) {
int[] arr={1,2,35,6};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));// [1, 2, 6, 35]
}
}