7天學完Java基礎之3/7

来源:https://www.cnblogs.com/train99999/archive/2019/05/17/10879034.html
-Advertisement-
Play Games

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]);
	   }
	}

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.下載文件 安裝包的下載路徑為:https://nodejs.org/en/download/ 選擇你需要的版本,這裡我選擇了 Windows Binary 64-bit 版本。 2.配置npm安裝目錄 .zip包下載完成之解壓縮,之後在解壓之後的文件路徑下創建兩個文件夾:node-global( ...
  • 一位不編程的分析師的專業生命周期是不會長的,一位不做實驗的設計思維研究者是不會有太多創意的,一位只讀書不思考的讀者是不會有太多深度汲取。設計思維源於IDEO的提出,它是一個概念,更是一種實踐。 一、 發明總結——思維的躍越 《設計改變一切》作者為蒂姆.布朗,創辦的IDEO公司直接參与了世界上第一臺鼠 ...
  • saltstack配置管理 Saltstack狀態模塊 遠程執行模塊的執行是過程式,而狀態是對minion的一種描述和定義,管理人員不需要關係部署任務如何完成的,只需要描述minion的狀態描述。它的和興是寫sls(Salt State file)文件,sls文件預設格式為YAML格式,並預設使用j ...
  • `起因:`最近在做統計計算,創建的實體中屬性比較多,都是一些數值,一開始是通過get、set方法進行賦值,占用了很多業務代碼方法的長度,可讀性不太好,後來改用了添加構造器的方式,稍顯精簡了一點,但是每次賦值的時候都都必須註意是不是對應上了。最後決定改用Bulider模式,確實好用很多。 下麵通過一個 ...
  • 上節課複習 1. 什麼是編程語言:編程語言是人與電腦溝通的介質 2. 什麼是編程:編程是使用編程語言編寫一大堆的文件 3. 為什麼要編程:奴役電腦,解放勞動力 4. 電腦五大組成部分 1. CPU 1. 控制器:控制硬體 2. 運算器:邏輯運算和算術運算 2. 記憶體: 1. 優點:速度快 2. ...
  • Spring Boot項目中數據源的配置可以通過兩種方式實現: 1.application.yml或者application.properties配置 2.註入DataSource及SqlSessionFactory兩個Bean 通過第二種方式配置數據源則按照MybatisPlus官方文檔使用分頁及 ...
  • 定義 function 函數名(形參列表){} 調用 函數名(實參列表); 參數預設值 預設值參數需放在形參列表最後連續排列 傳參方式 值傳遞:函數內外是兩個獨立的值。 引用傳遞(&):函數內外是同一個值。 返回值 return 退出函數,返回到調用函數的地方向後執行,也可以返回數據。 如需在函數內 ...
  • 最近項目需要用到類似access token進行加解密、驗簽的需求,本人在此做個小筆記記錄一下,以供他人參考。 一共會用到2中加解密,HS256 和 RS256,本文只是對 HS256做個備註,好了直接上代碼,先引入jar包 <dependency> <groupId>io.jsonwebtoken ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...