1、Scanner类
- 可以解析基本类型和字符串的简单文本扫描器
1、引用数据类型的使用步骤
1、导包
import 包名.类名;
2、创建对象
数据类型 变量名 = new 数据类型(参数列表);
3、调用方法
变量名.方法名();
2、Scanner类的使用
// 1.导包
import java.util.Scanner;
// 2.创建对象
Scanner sc = new Scanner(System.in);
// 3.调用方法
int num = sc.nextInt();
String name = sc.next();
demo
// 1.导包
import java.util.Scanner;
public class DemoScanner{
public static void main(String[] args){
// 2.创建对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
// 3.调用方法
int num = sc.nextInt();
System.out.println("num是:"+ num);
// 调用方法
String name = sc.next();
System.out.println("name是:"+ name);
}
}
习题,求键盘上两个数字纸盒
import java.util.Scanner;
public class DemoScanner{
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();
int sum = a + b;
System.out.println("两个数字的和是:"+sum);
}
}
取最大值
import java.util.Scanner;
public class DemoScanner{
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是:"+max);
}
}
2、Random类的使用
此类的实例用于生成随机数
1、Random类的使用步骤
// 1.导包
import java.util.Random;
// 2.创建对象
Random random = new Random();
// 3.调用方法
int num = random.nextInt();
demo
import java.util.Random;
public class DemoRandom{
public static void main(String[] args){
Random random = new Random();
int num = random.nextInt(10); // 顾头不顾尾
System.out.println("随机数是:"+num);
}
}
猜数字游戏
// 随机生成数字[0,100],猜大小
import java.util.Random;
import java.util.Scanner;
public class DemoRandom{
public static void main(String[] args){
Random random = new Random();
int num = random.nextInt(100)+1;
System.out.println("请输入你要猜测的数字:");
Scanner sc = new Scanner(System.in);
int scNum = sc.nextInt();
if (num>scNum){
System.out.println("你猜侧的数字是"+scNum+"系统的数字是"+num+"有点偏小");
}else if(num==scNum){
System.out.println("恭喜猜中了"+"你猜侧的数字是"+scNum+"系统的数字是"+num);
}else if(num<scNum){
System.out.println("你猜侧的数字是"+scNum+"系统的数字是"+num+"有点偏大");
}else{
System.out.println("错误的数字");
}
}
}
3、ArrayList
类(数组)
java.util.ArrayList
是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储 的元素。ArrayList
中可不断添加元素,其大小也自动增长
1、ArrayList
的使用步骤
// 1.导包
import java.util.ArrayList<E>;
<E> ,表示一种指定的数据类型,叫做泛型。 E ,取自Element(元素)的首字母。在出现 E 的地方,我们使
用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。
// 2.创建对象
ArrayList<数据类型> 对象名称 = new ArrayList<String>();
jdk7以后可简写:
ArrayList<数据类型> 对象名称 = new ArrayList<>();
// 3.调用方法
对象名称.方法名称
2、常用的方法
对于元素的操作,基本体现在——增、删、查。常用的方法有:
-
public boolean add(E e) :将指定的元素添加到此集合的尾部。
-
public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
-
public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
-
public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
//创建集合对象 ArrayList<String> list = new ArrayList<String>(); //添加元素 list.add("hello"); //public E get(int index):返回指定索引处的元素 System.out.println("get:"+list.get(0)); //public int size():返回集合中的元素的个数 System.out.println("size:"+list.size()); //public E remove(int index):删除指定索引处的元素,返回被删除的元素 System.out.println("remove:"+list.remove(0)); //遍历输出 for(int i = 0; i < list.size(); i++){ System.out.println(list.get(i)); }
3、如何存储基本的数据类型
ArrayList
对象不能存储基本类型,只能存储引用类型的数据。类似 <int> 不能写,但是存储基本数据类型对y应的包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:
基本数据类型 | 基本类型包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
4、String类
类 String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。
特点
-
字符串不变:字符串的值在创建后不能被更改
String s1 = "abc"; s1 += "d"; System.out.println(s1); // "abcd" // 内存中有“abc”和“abcd”两个字符串对象,s1从指向了abc变成了指向了“abcd”
-
因为String对象是不可变的,所以他们可以共享
String s1 = "abc"; String s2 = "abc"; // 内存中只有一个"abc"对象被创建,s1和s2指向了”abc“
-
"abc"相当于char[] data={'a','b','c'}
例如: String str = "abc"; 相当于: char[] data = {'a','b','c'}; String str = new String(data);
1、使用步骤
-
查看类
java.lang.String
: 内置的类无需导入
-
查看构造方法
-
public String()
:初始化新创建的String对象,表示空字符序列 -
public String(char[] value)
:通过当前参数中的字符数组构建新的String -
public String(byte[] bytes)
:通过使用默认字符集解码当前的字节数组构建新的String// 无惨构造 String str = new String(); // 通过字符数组进行构造 char chars[] = {'a','b','c'}; String str = new String(chars); // 通过字节数组构造 byte bytes[] = {97,98,99}; String str3 = new String(bytes);
-
2、常用的方法
1、判断功能的方法
-
public boolean equals (Object anObject)
:将此字符串与指定对象进行比较 -
public boolean equalsIgnoreCase (String anotherString)
:将此字符串与指定对象进行比较,忽略大小 写String s1 = "s"; String s2 = "s"; // boolean equals(Object obj):比较字符串的内容是否相同 System.out.println(s1.equals(s2)); System.out.println(s2.equals(s1)); //boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写 System.out.println(s1.equalsIgnoreCase(s2)); // true
2、获取功能的方法
-
public int length()
: 获取字符串的长度,其实也就是字符个数 -
public String concat(String str)
:将将指定的字符串连接到该字符串的末尾 -
public char charAt(int index)
::获取指定索引处的字符 -
public int indexOf(String str)
:获取str在字符串对象中第一次出现的索引,没有返回‐1 -
public String substring(int start)
:从start开始截取字符串到字符串结尾 -
public String substring(int start,int end)
:从start到end截取字符串。含start,不含end。String s = "helloworld"; System.out.println(s.length()); //获取字符串的长度 String s2 = s.concat("**hello itheima"); //将指定的字符串连接到该字符串的末尾 System.our.println(s2); //helloworld**hello itheima System.out.println(s.charAt(0)); //获取指定索引处的字符 System.out.println(s.indexOf("h")); //获取str在字符串对象中第一次出现的索引,没有返回‐1 System.out.println(s.substring(3,8)); //从start到end截取字符串。含start,不含end, 类似于python的切片
3、转换功能的方法
-
public char[] toCharArray ()
:将此字符串转换为新的字符数组。 -
public byte[] getBytes ()
:使用平台的默认字符集将该 String编码转换为新的字节数组。 -
public String replace (CharSequence target, CharSequence replacement)
:将与target匹配的字符串使用replacement字符串替换。String s = "abcde"; // char[] toCharArray():把字符串转换为字符数组 char[] chs = s.toCharArray(); for(int i = 0;i<chs.length;i++){ System.out.println(chs[i]); } // byte[] getBytes ():把字符串转换为字节数组 byte[] bytes = s.getBytes(); for(int j=0,j<bytes.length;j++){ System.out.println(bytes[j]) } // 替换字母 String str = "liu"; String newStr = str.replace("l","L"); System.out.println(newStr);
4、分割功能的方法
-
public String[] split(String regex)
:将此字符串按照给定的regex(规则)拆分为字符串数组 -
类似于python中的字符串依据字符切割
String str = "a|b|c"; String[] strArray = s.split("|"); System.out.println(strArray);
5、static关键字
关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。
1、定义和使用格式
类变量
-
当static修饰成员变量的时候,该变量称为类变量。该类的每个实例对象都共享一个类变量的值。任何对象都可以更改该变量的值,但也可以在不创建类对象的情况对类变量进行操作。
-
类变量: 使用static修饰的成员变量
-
定义格式:
static 数据类型 变量名;
-
demo
// 记录学号 public class Student{ private String name; private int age; // 记录学生的id private int id; public static int StudentId=0; public Student(String name, int age){ this.name=name; this.age=age; this.id= ++StudentId; } public void show(){ System.out.println("name"+name+","+"age"+age+","+"id"+id); } } // 对象 public class stu { public static void main(String[] args) { Student student = new Student("刘诗诗",33); student.show(); } }
静态方法(类方法)
-
当使用static修饰成员方法的时候,该方法就是静态方法或者是类方法,建议使用类调用,不建议使用类对象进行调用
-
**类方法:**使用static关键字修饰的成员方法
-
定义格式:
修饰符 static 返回值类型 方法名(参数列表){ //执行语句 }
举例:在上面的student中定义静态方法
public static void showNum(){ Ststem.out.println("num:"+num); }
-
静态方法的调用注意事项:
- 静态方法可以直接访问类变量和静态方法
- 静态方法不能直接访问普通成员变量或者成员方法,反之成员方法可以直接访问类变量或静态方法。
- 静态方法中,不能使用this关键字。
-
调用格式
// 访问类变量 类名.类变量名; // 访问静态方法 类名.静态方法名;
2、静态代码块
-
静态代码块:定义在成员位置,使用static修饰的代码块{}。
- 位置: 类中方法外
- 执行: 对着类的加载且执行一次,优先于main方法和构造方法的执行
-
格式:
public class ClassName{ static{ // 执行语句 } }
作用:给类变量进行初始化复制。demo如下
public class Game { public static int number; public static ArrayList<String> list; static { // 给类变量赋值 number = 2; list = new ArrayList<String>(); // 添加元素到集合中 list.add("张三"); list.add("李四"); } }
static 关键字,可以修饰变量、方法和代码块。在使用的过程中,其主要目的还是想在不创建对象的情况 下,去调用方法。
6、Arrays类
1、操作数组的方法
-
public static String toString(int[] a)
:返回指定数组内容的字符串形式 -
public static void sort(int[] a)
:对指定的int数组进行升序排列public static void main(String[] args) { // 定义int 数组 int[] arr = {2,34,35,4,657,8,69,9}; // 数组内容转为字符串 String s = Arrays.toString(arr); // 打印字符串,输出内容 System.out.println(s); // [2, 34, 35, 4, 657, 8, 69, 9] //数组进行升序排列 Arrays.sort(arr); System.out.println(arr); }
7、Math类
java.lang.Math
类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。
1、基本的运算方法
-
public static double abs(double a)
:返回 double 值的绝对值。double d1 = Math.abs(‐5); //d1的值为5
-
public static double ceil(double a)
:返回大于等于参数的最小的整数。double d1 = Math.ceil(3.3); //d1的值为 4.0 double d2 = Math.ceil(‐3.3); //d2的值为 ‐3. double d3 = Math.ceil(5.1); //d3的值为 6.0
-
public static double floor(double a)
:返回小于等于参数最大的整数。double d1 = Math.floor(3.3); //d1的值为3.0 double d2 = Math.floor(‐3.3); //d2的值为‐4.0 double d3 = Math.floor(5.1); //d3的值为 5.0
-
public static long round(double a)
:返回最接近参数的 long。四舍五入long d1 = Math.round(5.5); //d1的值为6.0 long d2 = Math.round(5.4); //d2的值为5.0
-