7天学完Java基础之3/7
api概述
什么叫做api?
api(application programming lnterface),应用程序编程接口。
所谓api就是值好多的类,好多的方法,jdk给我们提供了很多现成的类,我们可以直接去使用,这些类就是api
常见的几个api之scanner类的使用
-
导包
scanner类因为存在于java.lang包下,所有不需要导入就可以直接使用
-
创建
类名称 对象名 = new 类名称();
-
使用
对象名.方法名();
public class ascanner{ public static void main(string[] args){ system.out.println("请输入一个数字") //system.in代表从键盘进行输入 scanner sc = new scanner(system.in); //调用scanner的方法,获取一个整数 int num = sc.nextint(); system.out.println("数字"+num); } }
scanner的练习题
import java.util.scanner; public class maxinput { 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 max ; if(a>b){ max = a; }else{ max = b; } if(max>c){ system.out.println("最大值为"+max); }else{ max = c; system.out.println("最大值为"+max); } } }
匿名对象
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符
匿名对象的格式:
new 类名称();
匿名对象只能够使用一次,下次再用不得不再创建一个新对象
每一次new都是一个新的对象,所以只能够使用一次
public class person{ string name; public void showname(){ system.out.println("我叫"+name); } }
public class niming{ public static void main(string[] args){ person one = new person(); one.name =( "张飞"); one.showname(); new person().name = "吕蒙"; new person().showname(); //不能够打印出吕蒙,每一次new都是一个新的对象 } }
常见的几个api之random
public static void main(string[] args){ //创建对象 random r = new random(); //调用方法,随机生成无范围的一个整数 int i = r.nextint(); system.out.println(i); }
public static void main(string[] args){ random r = new random(); for(int j = 0;j<100;j++){ //随机获得一个0-9的数字, int i = r.nextint(10); system.out.println(i); } }
练习--猜数字小游戏
思路
你要猜一个数字,必须要先把数字给确定下来,也就是在这里,第一步要使用random类来获取一个随机数
有了随机数,就可以猜了,让用户输入随机数,就要使用到api中的scanner类
用户一般不可能一次猜中,所以就需要反复猜,这里就要用到while循环
猜一个数字有大了,小了,猜中了,三种结果,所以这里可以使用选择结构if语句
import java.util.random; import java.util.scanner; //变量名rn是随机数的缩写,sn,是键盘录入数字的缩写 public class agame{ public static void main(string[] args) { random arandom = new random(); //获得一个随机整数 int rn = arandom.nextint(101); // system.out.println(rn);//作弊大法 scanner ascanner = new scanner(system.in); system.out.println("请输入一个0-100之间的整数....."); //用户输入的整数 boolean mark = true; while (mark) { int sn = ascanner.nextint(); if (sn > rn) { system.out.println("输入的数字大了,请往小的方向猜吧"); } else if (sn < rn) { system.out.println("输入的数字小了,请往大的方向猜吧"); } else { system.out.println("恭喜你,猜对啦"); mark = false; } } system.out.println("游戏结束,感谢参与!!!!!!!!!!!!!!"); } }
arraylist集合
arraylist记得的长度是可以改变的,
public static void main(string[] args){ //创建一个arraylist集合,集合的名称是list,里面装的全都是string字符串类型的数据 //备注:从jdk1.7版本后,右侧的尖括号内容可以不行 arraylist<string> list = new arraylist<>(); system.out.println(list);//将会打印[]里的内容,如果没有内容,输出结果为 [] //想集合当中添加数据,需要用到add方法; list.add("赵云"); system.out.println(list); }
arraylist集合的常用方法和遍历
常用方法有:
public boolean add(e e);向集合当中添加元素,参数类型和泛型类型一致
public e get(int index);从集合中获取元素,参数是索引编号,
public int size(),获取集合的尺度长度,返回值是集合包含的元素个数
public e remove(int index),从集合中删除元素,参数是索引编号,返回值是被删除的元素
public static void main(string[] args) { arraylist<string> list = new arraylist<>(); //add方法的使用 list.add("贾诩"); list.add("周瑜"); list.add("郭嘉"); system.out.println(list);//[贾诩, 周瑜, 郭嘉] //从集合中获取元素,get方法,索引从0开始 string aname = list.get(2); system.out.println(aname);//郭嘉 //从集合中删除元素 list.remove(1); system.out.println(list);//[贾诩, 郭嘉] //获取集合的长度 system.out.println(list.size());//2 list.add("诸葛亮"); //集合的遍历 for(int i = 0;i<list.size();i++){ system.out.println(list.get(i)); } }
arraylist集合存储基本数据类型
arraylist集合是不能够存储基本类型的,如果要存储基本类型,必须使用基本类型对应的包装类
基本类型 | 包装类 |
---|---|
byte | byte |
short | short |
int | integer |
long | long |
float | float |
double | double |
char | character |
boolean | boolean |
public static void main(string[] args){ arraylist<integer> list = new arraylist<>(); list.add(100); list.add(200); system.out.println(list);//[100, 200] //自动拆箱,包装类型变成基本类型 system.out.println(list.get(0));//100 }
从jdk 1.5开始,支持自动装箱,自动拆箱
自动装箱:基本类型 ----->包装类型
自动拆箱:包装类型 ------>基本类型
arraylist集合的练习1
题目:生成6个1~33之间的随机整数,添加到集合,并遍历集合
我的解题思路:,
生成6个随机的整数,就要用到random类,
把生成的整数添加到集合,就要创建一个集合,
使用集合方法add来添加都集合,所以到这里就会有alist.add(随机数),这样就把随机数给添加到集合了,重复添加可以使用for循环
接下来就是遍历了
import java.util.arraylist; import java.util.random; public class aarray { public static void main(string[] args) { random arandom = new random(); arraylist<integer> alist = new arraylist<>(); for(int i=0;i < 6 ;i++){ alist.add(arandom.nextint(33)+1); system.out.println(alist.get(i)); } system.out.println(alist); } }
arraylist练习二
题目:自定义四个学生对象,添加到集合,并遍历
public class student { private int age; private string name; public student(int age, string name) { this.age = age; this.name = name; } public student() { } public int getage() { return age; } public void setage(int age) { this.age = age; } public string getname() { return name; } public void setname(string name) { this.name = name; } }
import java.util.arraylist; public class astudent { public static void main(string[] args) { student one = new student(25,"貂蝉"); student two = new student(26,"西施"); student three = new student(27,"王昭君"); student four = new student(28,"杨玉环"); arraylist<student> arrays = new arraylist<>(); arrays.add(one); arrays.add(two); arrays.add(three); arrays.add(four); for (int i=0;i<arrays.size();i++ ){ //使用get,获取对象出来 student stu = arrays.get(i); //使用对象名.方法名来获取年龄和姓名,到这里就遍历结束 system.out.println("年龄"+stu.getage()+"..."+"姓名"+stu.getname()); } } }
arraylist集合练习三
题目:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中
import java.util.arraylist; import java.util.random; public class aarray { //题目:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中 public static void main(string[] args) { //大集合,存放20个随机数字 arraylist<integer> big = new arraylist<>(); //小集合,存偶数 arraylist<integer> small = new arraylist<>(); random r = new random(); for(int i=0;i<20;i++) { //向大集合添加随机数,循环一次添加一个 big.add(r.nextint(20)); } system.out.println(big); for(int i=0;i<big.size();i++) { int num = big.get(i); if(num%2==0) { //向小集合添加偶数 small.add(num); } } system.out.println(small); } }
字符串概述和特点
字符串的特点:
字符串的内容用不可变
正是因为字符串不可以改变,所以字符串是可以共享使用的
字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组
字符串的构造方法和直接创建
public static void main(string[] args){ //使用空参构造 string str1 = new string(); system.out.println("第一个字符串"+str1); //根据字符数组创建字符串 char[] chararray = {'a','b','c'}; string str2 = new string(chararray); system.out.println("第二个字符串"+str2); //根据字节数组创建字符串 byte[] bytearray = {97,98,99}; string str3 = new string(bytearray); system.out.println("第三个字符串"+str3); //直接创建 string str4 = "hello"; system.out.println("第四个"+str4); }
字符串的常量池
字符串常量池,程序当中直接写上的双引号字符串,就在字符串常量池当中
对于基本类型来说 ==是进行数值的比较
对于引用类型来说 ==是进行地址的比较
public static void main(string[] args){ string str1 = "abc";//地址存在常量池中 string str2 = "abc";//地址存在常量池 char[] chararray = {'a','b','c'}; string str3 = new string(chararray);//地址不再常量池中 system.out.println(str1 == str2);//true system.out.println(str1 == str3);//false system.out.println(str2 == str3);//false }
字符串比较的相关方法
public static void main(string[] args){ string str1 = "hello"; string str2 = "hello"; char[] chararray = {'h','e','l','l','o'}; string str3 = new string(chararray); //equals比较的是两个字符串的内容 system.out.println(str1.equals(str2));//true system.out.println(str2.equals(str3));//true system.out.println(str3.equals("hello"));//true //忽略大小写的比较方法equalsignorecase system.out.println(str3.equalsignorecase("hello"));//true }
字符串的获取相关方法
public static void main(string[] args){ //获取字符串的长度; int length = "wertrghgffdvscsegh".length(); system.out.println("字符串的长度是 "+length); //拼接字符串 string str1= "hello"; string str2 = "world"; string str3 = str1.concat(str2); system.out.println(str3); //获取指定索引位置的单个字符 char ch = "hello".charat(1); system.out.println("在1号索引位置的字符是"+ch); //查找参数字符串在本来字符串当中出现的第一次索引位置 //如果没有返回-1 string original = "helloworld"; int i =original.indexof("llo"); system.out.println("第一次出现的索引位置是"+i); }
字符串的转换相关方法
public static void main(string[] args){ //把字符串转换成字符数组 char[] chars = "原乘风破万里浪".tochararray(); for(int i=0;i<chars.length;i++) { system.out.println(chars[i]); } //把字符串转换成字节数组 string str = "甘面壁读是十年书"; byte[] bytes = str.getbytes(); for(int i=0;i<bytes.length;i++) { system.out.println(bytes[i]); } //字符串的内容替换 string str3 = "风声雨声读书声声声入耳"; string str4 = str3.replace("声", "sheng"); system.out.println(str4); //字符串的切割方法,返回一个string[] string[] str5 =str3.split("声"); for(int i=0;i<str5.length;i++) { system.out.println(str5[i]); } }
上一篇: 在数据量大(超过10万)的情况下
下一篇: PHP安装攻略:常见问题解答(二)