欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

7天学完Java基础之3/7

程序员文章站 2022-07-10 23:52:56
API概述 什么叫做API? API(Application Programming lnterface),应用程序编程接口。 所谓API就是值好多的类,好多的方法,JDK给我们提供了很多现成的类,我们可以直接去使用,这些类就是API "API官方文档" 常见的几个API之Scanner类的使用 1 ......

api概述

什么叫做api?

api(application programming lnterface),应用程序编程接口。

所谓api就是值好多的类,好多的方法,jdk给我们提供了很多现成的类,我们可以直接去使用,这些类就是api

api官方文档

常见的几个api之scanner类的使用

  1. 导包

    scanner类因为存在于java.lang包下,所有不需要导入就可以直接使用

  2. 创建

    类名称 对象名 = new 类名称();

  3. 使用

    对象名.方法名();

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集合的常用方法和遍历

常用方法有:
  1. public boolean add(e e);向集合当中添加元素,参数类型和泛型类型一致

  2. public e get(int index);从集合中获取元素,参数是索引编号,

  3. public int size(),获取集合的尺度长度,返回值是集合包含的元素个数

  4. 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);
    
    }
}
字符串概述和特点

字符串的特点:

  1. 字符串的内容用不可变

  2. 正是因为字符串不可以改变,所以字符串是可以共享使用的

  3. 字符串效果上相当于是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]);
       }
    }