Java基础day8
Java基礎(chǔ)day8
- Java基礎(chǔ)day8-API
- 1 API
- 1.1 API概述
- 1.2 使用API幫助文檔
- 2 String類
- 2.1 String類概述
- 2.2 String類的特點(diǎn)【理解】
- 2.3 String類的構(gòu)造方法
- 2.4創(chuàng)建字符串對(duì)象兩種方式的區(qū)別
- 2.5字符串的比較
- 2.5.1 ==號(hào)的作用
- 2.5.2 equals方法的作用
- 2.6用戶登錄案例
- 2.7遍歷字符串案例
- 2.8統(tǒng)計(jì)字符次數(shù)案例
- 2.9字符串拼接案例
- 2.10字符串反轉(zhuǎn)案例
- 2.11幫助文檔查看String常用方法
- 3.StringBuilder類
- 3.1 StringBuilder類和String類的區(qū)別
- 3.2 StringBuilder類的構(gòu)造方法
- 3.3 StringBuilder類添加和反轉(zhuǎn)方法
- 3.4 StringBuilder和String相互轉(zhuǎn)換
- 3.5字符串拼接升級(jí)版案例
- 3.6字符串反轉(zhuǎn)升級(jí)版案例
- 3.7 幫助文檔查看StringBuilder常用方法
Java基礎(chǔ)day8-API
1 API
1.1 API概述
API (Application Programming Interface) :應(yīng)用程序編程接口
java中的API指的就是 JDK 中提供的各種功能的 Java類,這些類將底層的實(shí)現(xiàn)封裝了起來,我們不需要關(guān)心這些類是如何實(shí)現(xiàn)的,只需要學(xué)習(xí)這些類如何使用即可,我們可以通過幫助文檔來學(xué)習(xí)這些API如何使用。
1.2 使用API幫助文檔
2 String類
2.1 String類概述
String 類代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被實(shí)現(xiàn)為此類的實(shí)例。也就是說,Java 程序中所有的雙引號(hào)字符串,都是 String 類的對(duì)象。String 類在 java.lang 包下,所以使用的時(shí)候不需要導(dǎo)包!2.2 String類的特點(diǎn)【理解】
字符串不可變,它們的值在創(chuàng)建后不能被更改 雖然 String 的值是不可變的,但是它們可以被共享 字符串效果上相當(dāng)于字符數(shù)組( char[] ),但是底層原理是字節(jié)數(shù)組( byte[] )2.3 String類的構(gòu)造方法
public String() 創(chuàng)建一個(gè)空白字符串對(duì)象,不含有任何內(nèi)容 public String(char[] chs) 根據(jù)字符數(shù)組的內(nèi)容,來創(chuàng)建字符串對(duì)象 public String(byte[] bys) 根據(jù)字節(jié)數(shù)組的內(nèi)容,來創(chuàng)建字符串對(duì)象 String s = “abc”; 直接賦值的方式創(chuàng)建字符串對(duì)象,內(nèi)容就是abc示例代碼:
public class Stringdemo {public static void main(String[] args) {//public String():創(chuàng)建一個(gè)空白字符串對(duì)象,不含有任何內(nèi)容String s1 = new String();System.out.println("s1:" + s1);// public String(char[] chs):根據(jù)字符數(shù)組的內(nèi)容,來創(chuàng)建字符串對(duì)象char[] chs = {'a', 'b', 'c'};String s2 = new String(chs);System.out.println("s2:" + s2);// public String(byte[] bys):根據(jù)字節(jié)數(shù)組的內(nèi)容,來創(chuàng)建字符串對(duì)象byte[] bys = {97, 98, 99};String s3 = new String(bys);System.out.println("s3:" + s3);// String s = “abc”; 直接賦值的方式創(chuàng)建字符串對(duì)象,內(nèi)容就是abcString s4 = "abc";System.out.println("s4:" + s4);} }2.4創(chuàng)建字符串對(duì)象兩種方式的區(qū)別
- 通過構(gòu)造方法創(chuàng)建通過 new 創(chuàng)建的字符串對(duì)象,每一次 new 都會(huì)申請(qǐng)一個(gè)內(nèi)存空間,雖然內(nèi)容相同,但是地址值不同- 直接賦值方式創(chuàng)建以“”方式給出的字符串,只要字符序列相同(順序和大小寫),無論在程序代碼中出現(xiàn)幾次,JVM 都只會(huì)建立一個(gè) String 對(duì)象,并在字符串池中維護(hù)2.5字符串的比較
2.5.1 ==號(hào)的作用
比較基本數(shù)據(jù)類型:比較的是具體的值 比較引用數(shù)據(jù)類型:比較的是對(duì)象地址值2.5.2 equals方法的作用
- 方法介紹
public boolean equals(String s) 比較兩個(gè)字符串內(nèi)容是否相同、區(qū)分大小寫
- 示例代碼
2.6用戶登錄案例
需求:已知用戶名和密碼,請(qǐng)用程序?qū)崿F(xiàn)模擬用戶登錄。總共給三次機(jī)會(huì),登錄之后,給出相應(yīng)的提示代碼實(shí)現(xiàn):
import java.util.Scanner;/* 思路:1:已知用戶名和密碼,定義兩個(gè)字符串表示即可2:鍵盤錄入要登錄的用戶名和密碼,用 Scanner 實(shí)現(xiàn)3:拿鍵盤錄入的用戶名、密碼和已知的用戶名、密碼進(jìn)行比較,給出相應(yīng)的提示。字符串的內(nèi)容比較,用 equals() 方法實(shí)現(xiàn)4:用循環(huán)實(shí)現(xiàn)多次機(jī)會(huì),這里的次數(shù)明確,采用for循環(huán)實(shí)現(xiàn),并在登錄成功的時(shí)候,使用break結(jié)束循環(huán) */ public class Stringdemo {public static void main(String[] args) {String usrname = "123";String usrpasswd = "qwe";//多次實(shí)驗(yàn)機(jī)會(huì)3次for (int i = 0; i < 3; i++) {Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入用戶名");String name = sc.nextLine();System.out.println("請(qǐng)輸入密碼");String passwd = sc.nextLine();if (name.equals(usrname) && passwd.equals(usrpasswd) ) {System.out.println("登陸成功");break;} else {if (i == 2) {System.out.println("用戶被鎖定,請(qǐng)與管理員聯(lián)系");} else {System.out.println("登錄失敗,你還有" + (2 - i) + "次機(jī)會(huì)");}}}} }2.7遍歷字符串案例
需求:鍵盤錄入一個(gè)字符串,使用程序?qū)崿F(xiàn)在控制臺(tái)遍歷該字符串代碼實(shí)現(xiàn):
import java.util.Scanner;public class Stringdemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入一個(gè)字符串:");String line = sc.nextLine();for (int i = 0; i < line.length(); i++){System.out.println(line.charAt(i));}} }2.8統(tǒng)計(jì)字符次數(shù)案例
需求:鍵盤錄入一個(gè)字符串,統(tǒng)計(jì)該字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)(不考慮其他字符)
代碼實(shí)現(xiàn):
import java.util.Scanner;/* 思路:先用scanner實(shí)現(xiàn)鍵盤錄入字符串定義三個(gè)空變量遍歷字符串比較類型,改變空變量的值輸出三種類型字符個(gè)數(shù) */ public class Stringdemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入一個(gè)字符串");String line = sc.nextLine();int bigcount = 0;int smallcount = 0;int numbercount = 0;for (int i = 0; i < line.length(); i++) {char ch = line.charAt(i);if (ch >= 'A' && ch <= 'Z') {bigcount++;} else if (ch >= 'a' && ch <= 'z') {smallcount++;} else if (ch >= '0' && ch <= '9') {numbercount++;}}System.out.println("大寫字母" + bigcount + "個(gè)");System.out.println("小寫字母" + smallcount + "個(gè)");System.out.println("數(shù)字" + numbercount + "個(gè)");} }2.9字符串拼接案例
需求:定義一個(gè)方法,把 int 數(shù)組中的數(shù)據(jù)按照指定的格式拼接成一個(gè)字符串返回,調(diào)用該方法,并在控制臺(tái)輸出結(jié)果。 例如,數(shù)組為 int[] arr = {1,2,3}; ,執(zhí)行方法后的輸出結(jié)果為:[1, 2, 3]代碼實(shí)現(xiàn):
public class Stringdemo {public static void main(String[] args) {int[] arr = {1, 2, 3};String line = arraytostring(arr);System.out.println(line);}public static String arraytostring(int[] arr) {String s = "";s += '[';for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {s += arr[i];} else {s += arr[i] + ",";}}s += ']';return s;} }2.10字符串反轉(zhuǎn)案例
需求:定義一個(gè)方法,實(shí)現(xiàn)字符串反轉(zhuǎn)。鍵盤錄入一個(gè)字符串,調(diào)用該方法后,在控制臺(tái)輸出結(jié)果代碼實(shí)現(xiàn):
/*思路:Scanner實(shí)現(xiàn)輸入數(shù)據(jù)定義反轉(zhuǎn)方法調(diào)用方法輸出結(jié)果*/import java.util.Scanner;public class Stringdemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入一個(gè)字符串:");String line = sc.nextLine();String s = stringreverse(line);System.out.println(s);}public static String stringreverse(String line) {String ss = "";for (int i = line.length()-1; i >= 0; i--) {ss += line.charAt(i);}return ss;} }2.11幫助文檔查看String常用方法
public boolean equals(Object anObject) 比較字符串的內(nèi)容,嚴(yán)格區(qū)分大小寫(用戶名和密碼) public char charAt(int index) 返回指定索引處的 char 值 public int length() 返回此字符串的長度3.StringBuilder類
StringBuilder 是一個(gè)可變的字符串類,我們可以把它看成是一個(gè)容器,這里的可變指的是 StringBuilder 對(duì)象中的內(nèi)容是可變的
3.1 StringBuilder類和String類的區(qū)別
String類:內(nèi)容是不可變的
StringBuilder類:內(nèi)容是可變的
3.2 StringBuilder類的構(gòu)造方法
public StringBuilder() 創(chuàng)建一個(gè)空白可變字符串對(duì)象,不含有任何內(nèi)容 public StringBuilder(String str) 根據(jù)字符串的內(nèi)容,來創(chuàng)建可變字符串對(duì)象示例代碼:
public class Stringdemo {public static void main(String[] args) {//創(chuàng)建一個(gè)空字符串StringBuilder sb = new StringBuilder();System.out.println("sb" + sb);System.out.println(sb.length());//創(chuàng)建可變字符串StringBuilder sb2 = new StringBuilder("hello");System.out.println("sb2:" + sb2);System.out.println("sb2:" + sb2.length());} }3.3 StringBuilder類添加和反轉(zhuǎn)方法
public StringBuilder append(任意類型) 添加數(shù)據(jù),并返回對(duì)象本身 public StringBuilder reverse() 返回相反的字符序列示例代碼:
public class Stringdemo {public static void main(String[] args) {//創(chuàng)建一個(gè)空字符串StringBuilder sb = new StringBuilder();//鏈?zhǔn)骄幊?/span>sb.append("hello").append(100);System.out.println("sb" + sb);sb.reverse();System.out.println("sb:" + sb);} }3.4 StringBuilder和String相互轉(zhuǎn)換
-
StringBuilder轉(zhuǎn)換為String
public String toString():通過 toString() 就可以實(shí)現(xiàn)把 StringBuilder 轉(zhuǎn)換為 String
-
String轉(zhuǎn)換為StringBuilder
public StringBuilder(String s):通過構(gòu)造方法就可以實(shí)現(xiàn)把 String 轉(zhuǎn)換為 StringBuilder
示例代碼:
public class Stringdemo {public static void main(String[] args) {//創(chuàng)建一個(gè)空字符串StringBuilder sb = new StringBuilder();sb.append("hello");String s = sb.toString();System.out.println(s);StringBuilder sb2 = new StringBuilder(s);System.out.println(sb2);} }3.5字符串拼接升級(jí)版案例
需求:定義一個(gè)方法,把 int 數(shù)組中的數(shù)據(jù)按照指定的格式拼接成一個(gè)字符串返回,調(diào)用該方法,并在控制臺(tái)輸出結(jié)果。例如,數(shù)組為int[] arr = {1,2,3}; ,執(zhí)行方法后的輸出結(jié)果為:[1, 2, 3]代碼實(shí)現(xiàn):
public class SpringBuildertest {public static void main(String[] args) {int[] arr = {1, 2, 3};String s = arraytoarr(arr);System.out.println(s);}public static String arraytoarr(int[] arr) {StringBuilder sb = new StringBuilder();sb.append('[');for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {sb.append(arr[i]);} else {sb.append(arr[i] + ", ");}}sb.append(']');String s = sb.toString();return s;} }3.6字符串反轉(zhuǎn)升級(jí)版案例
需求:定義一個(gè)方法,實(shí)現(xiàn)字符串反轉(zhuǎn)。鍵盤錄入一個(gè)字符串,調(diào)用該方法后,在控制臺(tái)輸出結(jié)果 例如,鍵盤錄入abc,輸出結(jié)果 cba代碼實(shí)現(xiàn):
import java.util.Scanner;class StringBuildertest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請(qǐng)輸入一個(gè)字符串");String line = sc.nextLine();String s = stringreverse(line);System.out.println("s" + s);}public static String stringreverse(String line) { // StringBuilder sb = new StringBuilder(line); // sb.reverse(); // String sb2 = sb.toString(); // return sb2;return new StringBuilder(line).reverse().toString();} }3.7 幫助文檔查看StringBuilder常用方法
public StringBuilder append (任意類型) 添加數(shù)據(jù),并返回對(duì)象本身 public StringBuilder reverse() 返回相反的字符序列 public int length() 返回長度,實(shí)際存儲(chǔ)值 public String toString() 通過toString()就可以實(shí)現(xiàn)把StringBuilder轉(zhuǎn)換為String總結(jié)
以上是生活随笔為你收集整理的Java基础day8的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java基础day7
- 下一篇: Controller层使用@value注