Scanner
使用方法
1、导包
import 包路径.类名称
import java.util.Scanner;
如果需要使用的目标类,和当前类名称位于同一个包下,则可以省略导包语句不写。
2、创建
类名称 对象名 = new 类名称();
Scanner sc = new Scanner(System.in);
3、使用
对象名.成员方法名()
代码
//导包
import java.util.Scanner;
public class TestScanner {
public static void main(String[] args) {
//创建一个Scanner对象
Scanner sc = new Scanner(System.in);
//键盘输入并输出int类型数据
int num = sc.nextInt();
System.out.println("键盘输入的数字是"+num);
//键盘输入并输出String类型数据
String in = sc.next();
System.out.println("键盘输入的字符串是"+in);
}
}
练习求最大值
代码
//导包
import java.util.Scanner;
public class TestScannerMax {
public static void main(String[] args) {
//创建一个Scanner对象
Scanner sc = new Scanner(System.in);
//键盘输入两个需要相加的数据
System.out.println("请输入第一个数据:");
int num00 = sc.nextInt();
System.out.println("请输入第二个数据:");
int num01 = sc.nextInt();
System.out.println("请输入第三个数据:");
int num02 = sc.nextInt();
//创建一个int类型数值为0的对象
//int test = 0;
//判断最大值
// if(num00>test){
//test = num00;
//}else if (num01>test){
//test = num01;
//} test = num02;
int test = num00 > num01 ? num00 : num01;
int max = test > num02 ? test : num02;
//输出最大值
System.out.println("最大值是:" + max);
}
}
练习求和
代码
//导包
import java.util.Scanner;
public class SumScanner {
public static void main(String[] args) {
//创建一个Scanner对象
Scanner sc = new Scanner(System.in);
//键盘输入两个需要相加的数据
System.out.println("请输入第一个数据:");
int num00 = sc.nextInt();
System.out.println("请输入第二个数据:");
int num01 = sc.nextInt();
//求和
int result = num00+num01;
System.out.println("两个数据之和等于:"+result);
}
}
匿名对象
创建对象的标准格式:
类名称 对象名 = new 类名称();
匿名对象格式:
new 类名称();
注意事项:
匿名对象只能使用唯一一次,下次再用需要创建新的匿名对象
使用方法
代码
//定义一个类,用来练习匿名对象
public class Hero {
String name; public void show(){
System.out.println("尊敬的召唤师你好,我是:"+name);
}
}
public class TestAnonymous {
public static void main(String[] args) {
//创建对象标准格式:类名称 对象名 = new 类名称();
Hero h = new Hero();
h.name = "leesin";
h.show();
//匿名对象创建格式:new 类名称();
new Hero();
//创建匿名对象并对成员属性赋值
new Hero().name = "zed";
//注意事项:匿名对象只能使用唯一一次,下次再用需要创建新的匿名对象
//所以下面的show方法是一个新的对象,成员属性name没有被赋值所以输出是null
new Hero().show();
}
}
匿名对象的使用场景
代码
import java.util.Scanner;
public class AFun {
public static void methodParam(Scanner sc){
int num = sc.nextInt();
System.out.println("输入的是:"+num);
}
public static Scanner methodReturn(){
//正常有返回值的方法
Scanner sc = new Scanner(System.in);
System.out.println("这是正常对象作为返回值的方法,请输入:");
return sc;
}
public static Scanner methodReturn1(){
//匿名对象有返回值的方法
System.out.println("这是匿名对象作为返回值的方法,请输入:");
return new Scanner(System.in);
}
}
Random
使用方法
1、导包
import java.util.Random;
2、创建对象
Random r = new Random();
3、使用
int num = r.nexInt();
获得一个随机的int数字(范围是int范围,有正负两种)
int num = r.nextInt(10);
获得一个随机的int数字(参数代表了范围u,左闭右开区间,也就是0~9)
import java.util.Random;
public class Demo02 {
public static void main(String[] args) {
//生成一个Random对象
Random n = new Random();
//循环十次,每次随机储存0-4的其中一个数字
for (int i = 0; i < 10; i++) {
int num = n.nextInt(5);
System.out.println(num);
}
}
}
Random写个游戏
猜数字游戏:
随机给出一个数字,参与游戏者猜数字值
1、一直猜直到猜到中数字为止
2、10次机会,未猜中数字就结束游戏
代码
import java.util.Random; import java.util.Scanner; public class DemoGame {
public static void main(String[] args) {
//生成一个Random对象
Random n = new Random();
//随机生成1-100的数字赋值给int num
int num = n.nextInt(100)+1;
//生成一个Scanner对象
Scanner s = new Scanner(System.in);
System.out.println("请输入你的幸运数字:");//while编写游戏程序,一直猜到猜对为止 while (true) { int sc = s.nextInt(); if (sc > num) { System.out.println("你猜大了,请再次输入:"); } else if (sc < num) { System.out.println("你猜小了,请再次输入:"); }else{ System.out.println("你猜对了,幸运眷顾于你!"); break; } }
// //用for循环编写游戏程序
// //定义一个int x赋值10为猜测次数
// int x = 10;
// //10次for循环为猜测次数
// for (int i = 0; i < x; i++) {
// //提示剩余猜测次数,并提示键盘输入
// System.out.println("你还剩余"+(x-i)+"次机会,请输入你的幸运数字:");
// int sc = s.nextInt();
// //如果是最后一次机会,猜错了的提示语为游戏结束
// if (i == x-1){
// if (sc > num) {
// System.out.println("你猜大了,游戏结束");
// } else if (sc < num) {
// System.out.println("你猜小了,游戏结束");
// }else{
// System.out.println("你猜对了,幸运眷顾于你!");
// break;
// }
// }else {//如果不是最后一次机会,猜错了的提示语统一为在再来一次
// if (sc > num) {
// System.out.println("你猜大了,请再次输入:");
// } else if (sc < num) {
// System.out.println("你猜小了,请再次输入:");
// }else{
// System.out.println("你猜对了,幸运眷顾于你!");
// break;
// }
// }
}
}
ArrayList
数组的额长度不可以发生改变,ArrayList集合的长度可以随意变化
使用方法
ArrayList<引用数据类型> 集合名称 = new ArrayList<>();
ArrayList<String> List = new ArrayList<>();
public boolean add(E e): 向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。对于ArrayList集合来说,add动作一定是成功的,所以返回值可用可不用
public E get(int index): 从集合中获取元素,参数是索引编号,返回值就是对应位置的元素
public E remove(int index): 从集合中删除元素,参数是索引编号,返回值就是被删除掉的元素
public int size(): 获取集合的尺寸长度,返回值就是集合中包含元素的个数
练习
import java.util.ArrayList;
/*
public boolean add(E e): 向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。对于ArrayList集合来说,add动作一定是成功的,所以返回值可用可不用
public E get(int index): 从集合中获取元素,参数是索引编号,返回值就是对应位置的元素
public E remove(int index): 从集合中删除元素,参数是索引编号,返回值就是被删除掉的元素
public int size(): 获取集合的尺寸长度,返回值就是集合中包含元素的个数
*/
public class Demo00 {
public static void main(String[] args) {
//创建String类型的数组集合
ArrayList<String> list = new ArrayList<String>();
//不放入数据的话为空list:[]
System.out.println("未添加数据list的内容是:"+list);
//apublic boolean add(E e): 向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。
// 对于ArrayList集合来说,add动作一定是成功的,所以返回值可用可不用
list.add("leesin");
list.add("king");
list.add("zed");
list.add("javen");
System.out.println("添加数据后list的内容是:"+list);
//public E get(int index): 从集合中获取元素,参数是索引编号,返回值就是对应位置的元素
String getName = list.get(0);
System.out.println("list中第一个数据是:"+getName);
//public E remove(int index): 从集合中删除元素,参数是索引编号,返回值就是被删除掉的元素
String remover = list.remove(3);
System.out.println("被删除的数据是:"+remover);
System.out.println("删除一个数据后list里的内容是:"+list);
//public int size(): 获取集合的尺寸长度,返回值就是集合中包含元素的个数
int len = list.size();
System.out.println("数组的长度是:"+len);
//for循环遍历数组内的数据
for (int i = 0; i < len; i++) {
System.out.println("第"+i+"次循环,获得list中的数据是:"+list.get(i));
}
}
}
存储基本类型
如果希望想集合ArrayList当中存储基本数据类型,必须使用基本类型对应的包装类
基本类型 | 包装类(位于java.long) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
练习
import java.util.ArrayList;
public class Demo01 {
public static void main(String[] args) {
//创建一个Integer对象
ArrayList<Integer> ii = new ArrayList<>();
//添加数据并打印
ii.add(122);
ii.add(2);
ii.add(22);
System.out.println(ii);
//输出第一个数据
ii.remove(0);
//循环打印数组内的数据
for (int i = 0; i < ii.size(); i++) {
System.out.println(ii.get(i));
}
}
}
String
1、字符串的内容永不可变
2、字符串是可以共享使用的
3、字符串效果上相当于是char[]字符数组,底层原理是byte[]字节数组
创建方式
public String(); 创建一个空白字符串
public String(char[] array); 根据字符数组的内容,来创建对应的字符串
public String(byte[] array); 根据字节数组的内容,来创建对应的字符串
String str(常量名) = “字符串”; 直接创建
注意:
1、对于引用类类型, == 进行的是地址值的比较
2、双引号直接写的字符串在常量池当中,new的字符串对象不在常量池中
String的比较方法
public boolean equals(OBject obj);
参数可以是任何对象,只有参数是一个字符串并且内容相同才会给ture,否则返回false
注意:
1、任何对象都能用Object进行接收
2、equals放啊具有对称性,也就是a.equals
(b)和b.equals(a)效果一样
3、如果比较双方一个变量一个常量,推荐把常量字符串写在前面
推荐:"abc".equals(str) 不推荐:str.equals("abc")
equalsIgnoreCase(Strign str);
忽略大小写,进行的内容比较方法
String的获取相关方法
public int length(); 获取字符串当中含有的字符个数,拿到字符串长度
public String concat(Strign str); 将当前字符串和参数字符串拼接并返回新的字符串
public char charAt(int index); 获取指定索引位置的单个字符(索引从零开始)
public int indexOf(String str); 查找参数字符串在本字符当中首次出现的索引位置,如果没有返回值 -1
String的截取方法
public String substring(int index); 截取从参数位置一直到字符串末尾,返回新字符串
publci String substring(int begin, int end); 截取从begin开始,一直到end结束,中间的字符串。[begin,end)包含左边,不包含右边
String转换相关的方法
public char[] toCharArray(); 将当前字符串拆分成为字符数组作为返回值
public byte[] getBytes(); 获得当前字符串底层的字节数组
public Strign replace(CharSequence oldString, CharSequence newString); 将所偶遇出现的老字符串替换成为新字符串,返替换之后的结果新字符串
String分割的方法
public String[] split(String regex); 按照参数规则,将字符串切分成为若干部分