日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java常用类库(Object类、String类、StringBuffer类、包装类、Math类、System类)详解

發(fā)布時間:2023/12/20 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java常用类库(Object类、String类、StringBuffer类、包装类、Math类、System类)详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常用類庫

java.lang

java.lang包下放置了Java開發(fā)中常用的類和接口,所以為簡化該包下類的使用,java.lang包下的類在使用時不需要導入這些類

java.lang包下常用類有:

  • Object
  • String
  • StringBuffer和StringBuilder
  • 八種基本數據類型的包裝類
  • Thread等等

一、Object類

java.lang.Object類是類層次結構中最頂層父類。所有的類(包括數組)直接或者間接的繼承自Object類,同時也繼承了該類中的方法

Object的構造方法:

  • Object類只有一個無參的構造方法
  • Object()

Object中常用的方法:

  • boolean equals(Object o) 比較兩個對象是否相同
  • int hashCode() 返回一個對象的哈希碼
  • String toString() 將一個對象轉換為字符串

1.getClass()

獲取該對象的類的完整路徑結構!

//getClass(): //獲取該對象的類的完整結構 Student stu= new Student("張三",18); Class clazz = stu.getClass(); System.out.println(clazz);Class clazz_1 = Student.class; String name = clazz_1.getName();//獲取完整路徑 System.out.println(name);String simpleName = clazz_1.getSimpleName(); System.out.println(simpleName);//獲取當前類名

運行結果:

class com.changyongleiku.Objece_1.Student com.changyongleiku.Objece_1.Student Student

2.hashcode()*

獲取對象在內存中的地址!

@Override public int hashCode() {return Objects.hash(name, age); } //hashcode() //獲取對象在內存中的地址 int i = stu.hashCode(); System.out.println(i);

運行結果:

460141958

注意:

相同的對象應該具有相同的哈希碼值,所以重寫equals()的方法也要重寫hashcode()方法。

3.toString()*

對象的字符串形式!

@Override public String toString() {return super.toString(); }

重寫toString()方法:

@Override public String toString() { return this.name+" "+this.age; } //toString()對象的字符串形式 System.out.println(stu);

運行結果:

張三 18

4.equals()*

判斷字符串是否相等:

equals(Object obj);判斷傳入的對象和當前對象是否相等

boolean equals(Object o):

  • Object類的equals方法用于判斷兩個對象是否相等
  • Object類的equals方法的返回值為boolean的true和false
  • Object類的equals方法只有一種情況返回true:兩個非空的引用變量o1和o2指向的是同一個對象時
//判斷傳入的對象和當前對象是否相等 public boolean xd(Object obj){if(obj == null){return false;}if(!(obj instanceof Student)){return false;}Student stu = (Student)obj;if(stu.getAge() == this.age && stu.getName() == this.name){return true;}return false; }//自己寫的 @Override public boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age &&Objects.equals(name, student.name); }//自帶的

equals方法和==的區(qū)別:

  • ==可以用于比較基本數據類型的值
  • ==可以用于比較兩個對象是否相等
  • equals只能比較兩個對象是否相等

== 比較地址(基本數據類型)

equals比較值(引用數據類型)

注意:

當此方法被重寫時,通常有必要重寫 hashCode 方法,以維護 hashCode 方法的常規(guī)協(xié)定,該協(xié)定聲明相等對象必須具有相等的哈希碼.

5.Clone()

克隆: 要實現接口Cloneable

public class Student implements Cloneable{@Override protected Object clone() throws CloneNotSupportedException {return super.clone();}}

克隆后判斷相等。

Student stu_3 = (Student)stu.clone(); System.out.println(stu.equals(stu_3));

6.finalize()

當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法。

7.創(chuàng)建一個類重寫方法

package com.changyongleiku.Objece_1;import java.util.Objects;public class PErson {private String name;private int age;private String gender;private String email;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}/* @Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;PErson pErson = (PErson) o;if (age != pErson.age) return false;if (name != null ? !name.equals(pErson.name) : pErson.name != null) return false;if (gender != null ? !gender.equals(pErson.gender) : pErson.gender != null) return false;return email != null ? email.equals(pErson.email) : pErson.email == null;}@Overridepublic int hashCode() {int result = name != null ? name.hashCode() : 0;result = 31 * result + age;result = 31 * result + (gender != null ? gender.hashCode() : 0);result = 31 * result + (email != null ? email.hashCode() : 0);return result;}*///判斷字符串是否相等@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;PErson pErson = (PErson) o;return age == pErson.age &&Objects.equals(name, pErson.name) &&Objects.equals(gender, pErson.gender) &&Objects.equals(email, pErson.email);}//哈希編碼@Overridepublic int hashCode() {return Objects.hash(name, age, gender, email);}//顯示屬性@Overridepublic String toString() {return "PErson{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +", email='" + email + '\'' +'}';}//構造方法public PErson() {}public PErson(String name, int age, String gender, String email) {this.name = name;this.age = age;this.gender = gender;this.email = email;} }

二、String類

  • String類代表字符串,提供了開發(fā)中常用的字符串處理的方法,如:求字符串的長度、截取字符串、替換字符串等方法

  • 字符串是常量,它的值創(chuàng)建之后就不可以再修改了。

    String類常用構造方法

    • String() 無參構造方法
    • String(String str) 有一個字符串參數的構造方法
    • String(char[]ch) 有一個char類型數組參數的構造方法
    • String(byte[] b) 有一個byte數組參數的構造方法

聲明和創(chuàng)建字符串對象的方式

String類常用方法:

  • int length() 求字符串值的字符個數
  • boolean equals(Object o) 比較兩個字符串是否相同
  • String replace(char old,char n) 字符串替換
  • char charAt(int index) 返回指定字符串指定位置的字符
  • int **compareTo(String s)**按字典順序比較字符串大小
  • boolean endsWith(String s) 比較字符串是否以指定的參數結尾
  • boolean **startsWith(String s)**比較字符串是否以指定的參數開頭
  • String **valueOf(int i)**將基本數據類型轉換為字符串
  • boolean isEmpty() 判別一個字符串值的長度是不是為0
  • int indexOf(int ch) 返回指定字符ch在字符串中的索引
  • int **lastIndexOf(int ch)**返回指定字符ch在字符串中最后出現的索引
  • String **substring(int begin)**從指定索引位置截取字符串
  • split 根據給定分隔符拆分此字符串
  • toCharArray 將此字符串轉換為一個新的字符數組。
  • toLowerCase 轉小寫
  • toUpperCase 轉大寫
  • trim 去掉前后空格/忽略前導空白和尾部空白
  • concat 字符串拼接

String類中的構造方法和常用方法:

import java.io.UnsupportedEncodingException; import java.util.Arrays;public class Main {public static void main(String[] args) throws UnsupportedEncodingException {//常用構造方法//String 類被final修飾,//字符串一旦聲明好,長度不能改變。對他的運算就是產生新的字符串。String str = "hello";//基本數據類型String s = new String("hello");//引用數據類型System.out.println(s.equals(str));//trueSystem.out.println(s==str);//false//將ASCII轉換成字符s = new String (new byte[]{97, 98, 99});System.out.println(s);//abcs = new String(new byte[]{97,98,99},"utf8");System.out.println(s);//abc//編碼 解碼s = "好";byte[] utf8s = s.getBytes("utf8");for (int i = 0; i < utf8s.length; i++) {System.out.println(utf8s[i]);}/* -27-91-67*/s = new String(utf8s,"utf8");System.out.println(s);//好//常用方法//charAt() 返回指定索引處 的Char值s = "sadqwdzxc";char c = s.charAt(3);System.out.println(c);//q//compareTo 按字典順序比較兩個字符串int qwe = s.compareTo("qwe");System.out.println(qwe);//2int aFc = s.compareToIgnoreCase("AFc");//忽略大小寫,按字典順序比較兩個字符串System.out.println(aFc);//18//concat 字符串拼接s = "sadqwdzxc";String concat = s.concat(" word");System.out.println(concat);//sadqwdzxc word//contains 是否包含此字符s = "sadqwdzxc";boolean a = s.contains("a");System.out.println(a);//true//endsWith 判斷是否以該字符結尾的s = "sadqwdzxc";boolean wewe = s.endsWith("wewe");System.out.println(wewe);//false//startsWith 判斷是否以該字符開頭的s = "sadqwdzxc";boolean wewe1 = s.startsWith("wewe");System.out.println(wewe);//false//indexOf 返回指定字符在此字符串中第一次出現處的索引s = "sadqwdzxc";int d = s.indexOf("d");System.out.println(d);//2//isEmpty 當且僅當 length() 為 0 時返回 trueboolean empty = s.isEmpty();System.out.println(empty);//false//replace 返回一個新的字符串,它是通過用 newChar 替換此字符串中出現的所有 oldChar 得到的。s = "sadqwdzxc";String replace = s.replace("d", "*");System.out.println(replace);//sa*qw*zxc//split 根據給定分隔符拆分此字符串s = "aaa,bbb,ccc,ddd";String[] split = s.split(",");System.out.println(Arrays.toString(split));//[aaa, bbb, ccc, ddd]//substring 從指定位置 截取返回一個新的字符串,它是此字符串的一個子字符串。s = "hello world";String substring = s.substring(6);System.out.println(substring);//world//substring 截取指定索引到指定索引的元素 [左閉右開)String substring1 = ss.substring(2,4);System.out.println(substring1);//ll//toCharArray 將此字符串轉換為一個新的字符數組。char[] chars = s.toCharArray();System.out.println(chars);//hello world//toLowerCase 轉小寫String s1 = s.toLowerCase();//轉小寫System.out.println(s1);//hello world//toUpperCase 轉大寫String s2 = s.toUpperCase();System.out.println(s2);//HELLO WORLD//trim 去掉前后空格/忽略前導空白和尾部空白s= " sd sd dasd ";String trim = s.trim();System.out.println(trim);//sd sd dasd//轉成字符串int i = 1;s = i + "";String s4 = String.valueOf(10);System.out.println(s);//1System.out.println(s4);//10// valueOf 返回 char 數組參數的特定子數組的字符串表示形式String s3 = String.valueOf(new char[]{'a', 's', 's', 'a', 's'}, 2, 3);System.out.println(s3);//sas} }

String類、StringBuffer和StringBuilder之間的區(qū)別:
String字符串是常量,一旦創(chuàng)建無法修改
StringBuffer和StringBuilder是可變字符串,創(chuàng)建之后仍可以修改
StringBuffer是線程安全的、StringBuilder線程不安全

三、StringBuffer類和StringBuilder

StringBuffer和StringBuilder都是帶有緩沖區(qū)的可變字符串

為什么要使用StringBuffer或者StringBuilder?
一個String對象的長度是固定的,不能改變它的內容,也不能附加新的字符至String對象中。可以使用加號“+”運算符來連接字符串以達到附加新字符或字符串的目的,但使用加號“+”運算符會產生一個新的String實例,即需要另外分配空間。如果既想節(jié)省開銷,又能改變字符串的內容,則可以使用StringBuilder類。

StringBuffer類的構造方法

  • StringBuffer()
  • StringBuffer(String s)

StringBuffer的常用方法

  • StringBuffer **append(int i)**在可變字符串末尾追加I
  • StringBuffer **insert(int offset,String s)**在可變字符串指定位置插入另外一個字符串s
  • int length() 返回可變字符串中字符的個數
  • String toString() 將可變字符串轉化為字符串對象
public class Main {public static void main(String[] args) {String a = "as";//構造方法//構造一個其中不帶字符的字符串緩沖區(qū),初始容量為 16 個字符StringBuffer s = new StringBuffer();//構造一個字符串緩沖區(qū),并將其內容初始化為指定的字符串內容。String str = "hello word ";StringBuffer ss = new StringBuffer(str);System.out.println(ss);//常用方法//append 追加ss.append(" hello");System.out.println(ss);//hello word hello//delete 刪除ss.delete(15,20);//開始下標,結束下標System.out.println(ss);//hello word//insert 插入ss.insert(5,"hello");//插入位置,插入字符System.out.println(ss);//hellohello word//replace 替換ss.replace(0,5,"*****");//開始下標,結束下標,替換字符System.out.println(ss);//*****hello word//reverse() 倒轉ss.reverse();System.out.println(ss);// drow olleh*****//toString 轉回字符串String s1 = ss.toString();System.out.println(s1);} }

四、包裝類

java.lang包下為8種基本數據類型提供對應的包裝類
8中基本數據類型以及對應的包裝類

包裝類提供了字符串、基本數據類型和包裝類相互轉化的方法

數字基本數據類型的包裝類都繼承了Number類,它們的使用方式相似,下面以常用的基本數據類型int對應的包裝類Integer為例說明數字類型包裝類的使用。

基本數據類型 int值轉化為Integer類型對象:

  • int i = 20;

  • Integer integer1 = new Integer(i);//方法一

  • Integer integer2 = Integer.valueOf(i);//方法二

  • Integer對象轉化為基本數據類型int值:

    • Integer integer = new Integer(20);

    • int i1 = integer**.intValue**();

  • String類型的數字轉化為Integer對象:

    • String s = “120”;

    • Integer integer1 = new Integer(s);//方法一

    • Integer integer2 = Integer.valueOf(s);//方法二

  • Integer類型轉化為String類型:

    • Integer integer = new Integer(20);

    • String s1 = integer.toString();

String類型的數字轉化為基本數據類型的int值:

  • String s = “120”;
  • int i1 = Integer.parseInt(s);//方 法一
  • Integer integer = new Integer(s);
  • int i2 = integer.intValue();//方法二

基本數據類型int轉化為字符串:

  • int i1 = 20;
  • String str = String.valueOf(i1);//方法一
  • str = Integer.toString(i2);//方法二

Integer的equals方法:

  • Integer的equals方法繼承自Object,并且進行了重寫

  • Integer的equals方法只有一種情況返回true:兩個Integer類型的對象 i1 和 i2包含的值相等時;其他情況返回false

如:

  • Integer i1 = new Integer(20);

    • Integer i2 = new Integer(30);

    • Integer i3 = new Integer(20);

    • boolean b = i1.equals(i2);//false

    • b = i1.equals(i3);//true

根據基本數據類型int和對應包裝類Integer的知識,總結如下內容

  • byte/short/long/float/double類型和包裝類之間轉換的方法
  • byte/short/long/float/double的包裝類和字符串之間的轉換方法
  • byte/short/long/float/double類型和字符串之間的轉換方法

boolean類型的包裝類Boolean

  • Boolean用于將一個基本數據類型boolean值包裝為對象

將boolean值轉換為Boolean對象

  • Boolean b1 = new Boolean(true);//方法一
  • Boolean b2 = Boolean.valueOf(true);//方法二

將Boolean對象轉換為boolean值

  • Boolean b = new Boolean(true);
  • boolean b1 = b.booleanValue();//方法一

String類型對象轉換為Boolean對象

  • String s=“true”;
  • Boolean b1 = new Boolean(s);//方法一
  • Boolean b2 = Boolean.valueOf(s);//方法二

將Boolean對象轉換為String類型

  • Boolean b = new Boolean(true);
  • String s1 = b.toString();//方法一
  • String s2 = Boolean**.toString**(b);//方法二
  • String s3 = String.valueOf(b);//方法三

boolean值轉換為String對象

  • boolean b = true;
  • String s1 = String.valueOf(b);

String對象轉換為boolean值

  • String s = “true”;
  • boolean b1 = Boolean.parseBoolean(s);//方法一
  • Boolean b = new Boolean(s);
  • boolean b2 = b.booleanValue();//方法二

字符包裝類Character用于將char類型值包裝為對象
將char值轉換為Character對象

  • Character c1= new Character(‘A’);//方法一
  • Character c2 = Character.valueOf(‘A’);//方法二

將Character對象轉換為char值

  • Character c1= new Character(‘A’);
  • char ch1 = c1.toString();//方法一
  • char ch2 = Character.toString(c1);//方法二

Character包裝類除了提供以上char和Character相互轉換的方法外也提供了以下有用的方法

包裝類是將基本數據類型的值包裝為Java中的對象,Java語言為8種基本數據類型分別提供了包裝類.

包裝類提供了基本數據類型、包裝類、字符串之間的相互轉換的方法,這些轉換的的方法在今后的開發(fā)中十分有用。

public class Main {public static void main(String[] args) {//包裝類//把基本數據類型包裝一下,//Integer 構造方法的使用//int--> IntegerInteger i = new Integer(90);Integer.valueOf(i);System.out.println(i);//90//Integer--> intint i1 = i.intValue();System.out.println(i1);//100//String-->Integeri = new Integer("100");//只能轉 "數字"Integer.valueOf(i);System.out.println(i);//100//Integer--> StringString s = i.toString();System.out.println(s);//100//int-->StringString str = 10 +"";String s1 = String.valueOf(str);System.out.println(s1);//String --> inti = Integer.parseInt(str);System.out.println(i);//其他常用方法Integer x = new Integer(3);Integer y = new Integer(5);//compareTo 比較兩個對象大小int i2 = x.compareTo(y);System.out.println(i2);//-1 //x<y//boolean 類型的包裝類//boolean --> BooleanBoolean boo = new Boolean(true);System.out.println(boo);//String --> booleanboo = new Boolean("true");System.out.println(boo);//tureboo = new Boolean("sdadadad");System.out.println(boo);//false//Boolean --> booleanboolean b = boo.booleanValue();System.out.println(b);//String-->booleanboolean asdad = Boolean.parseBoolean("asdad");System.out.println(asdad);//false//Boolean -- > Stringboo.toString();System.out.println(boo);//false//Character 包裝類//char --> CharacterCharacter charq = new Character('a');//Character-->charcharq.charValue();//Character-->Stringcharq.toString();//char-->StringString.valueOf('a');//String --> char"a".charAt(0);//Character的其他方法Character cc = new Character('a');// isDigit 確定指定字符是否為數字。boolean a = Character.isDigit('5');System.out.println(a);//true//isLetter 確定指定字符是否為字母。boolean a_1 = Character.isLetter('K');System.out.println(a_1);//true//isLetterOrDigit 確定指定字符(Unicode 代碼點)是否為字母或數字。boolean a_2 = Character.isLetterOrDigit('K');System.out.println(a_2);//true// isLowerCase 確定指定字符是否為小寫字母。boolean a_3 = Character.isLowerCase('K');System.out.println(a_3);//fasle// isUpperCase 確定指定字符是否為大寫字母。boolean a_4 = Character.isUpperCase('K');System.out.println(a_4);//true// 確定指定字符是否為空白字符。isWhitespaceboolean spaceChar = Character.isSpaceChar(' ');System.out.println(spaceChar);//trueboolean whitespace = Character.isWhitespace('\n');///\\一般用這個System.out.println(whitespace);//true//轉小寫toLowerCase |、轉大寫:toUpperCaseCharacter.toLowerCase('H');} }
自動拆裝箱:
public class main {public static void main(String[] args) {//自動拆裝箱//自動裝箱Integer i = 10;Boolean o = true;Integer q = 10;Integer w = 10;System.out.println(q==w);//trueInteger q_1 = 200;Integer w_1 = 200;System.out.println(q_1==w_1);//false/* 范圍 -128 ~ 127 一個字節(jié)內相等*///自動拆箱int j = new Integer(10);boolean ji = new Boolean(true);//自動裝箱tt(5);}public static void tt(Object o){System.out.println(o);} }

五、Math類

在java.lang.Math類中提供了在數學應用中常見的常量(如:PI值)以及方法(如:三角函數)
Math的構造方法是私有的,所有無法創(chuàng)建Math對象
Math中只有static修飾的常量和類方法

public class main {public static void main(String[] args) {//Math類 靜態(tài)方法Math.max(10,14);//最大double pi = Math.PI; //靜態(tài)常量 piMath.ceil();//向上取整Math.floor();//向下取整Math.round();//四舍五入Math.sqrt();//平方根Math.random();//獲取一個隨機數//Random類 隨機數//Random r = new Random();//r.nextInt(101);//1-100之間的隨機數//Sanner類 掃描器Scanner sc = new Scanner(System.in);int i = sc.nextInt();//輸入一個整數String next = sc.next();//獲取輸入的字符串,以空格結束,空格后面的獲取不到String s = sc.nextLine();//獲取輸入的一整行} }

六、System

  • System類代表運行時系統(tǒng),提供了一些獲取設置和獲取當前系統(tǒng)運行環(huán)境的方法
  • System有三個成員變量
    • in 標準輸入流
    • out 標準輸出流
    • err 錯誤輸出流

System中的方法

  • System.arrayCope()//快速復制數組的方法
  • System.exit(0);//退出Java虛擬機的方法
public class Main {public static void main(String[] args) {//System類System.out.println("hello word");PrintStream out = System.out;//輸出流InputStream in = System.in;//輸入流//從1970年到現在的秒數long l = System.currentTimeMillis();System.out.println(l);//1626939039073long l_1 = System.currentTimeMillis();System.out.println(l_1-l);//0System.exit(0);//退出虛擬機 后面的東西不會運行} }

七、練習

練習一:

1.創(chuàng)建一個Student類,該有String類型的學號stuNo,String類型的姓名,要求將該類所有的成員變量進行封裝,并且提供公共的getter和setter方法,重寫equals方法,只要學生的學號相同即返回true,重寫toString()方法,toString方法返回值類似”姓名:張三 學號:201301 ”

String 類 String str = “abcd”; 求字符串的字符個數
將str字符串截取為”cd”

import java.util.Objects;public class Student {private String stuNo;private String name;public String getStuNo() {return stuNo;}public void setStuNo(String stuNo) {this.stuNo = stuNo;}public String getName() {return name;}public void setName(String name) {this.name = name;}//只要學生的學號相同即返回true@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return Objects.equals(stuNo, student.stuNo);}@Overridepublic int hashCode() {return Objects.hash(stuNo);}@Overridepublic String toString() {return "學號:'" + stuNo + '\'' +", 姓名='" + name + '\'' ;}//字符個數public int count(String str){return str.length();}//截取字符public String jie(String str){return str.substring(2);}public Student() {}public Student(String stuNo, String name) {this.stuNo = stuNo;this.name = name;} } public class main {public static void main(String[] args) {Student stu = new Student("1026", "張三");Student stu_1 = new Student("1026", "李四");boolean equals = stu.equals(stu_1);System.out.println("兩個學生是否相等:"+equals);String str = "abcd";//打印學生信息System.out.println(stu.toString());System.out.println(stu_1.toString());//獲取字符串個數int count = stu.count(str);System.out.println("字符串個數為:"+count);//截取字符串String jie = stu.jie(str);System.out.println("截取后的字符串為:"+jie);}}

練習二:

編寫敏感詞過濾程序
在網絡程序中,如聊天室、聊天軟件等,經常需要對一些用戶所提交的聊天內容中的敏感性詞語進行過濾。如“性”、“色情”、“爆炸”、“恐怖”、“槍”等,這些都不可以在網上進行傳播,需要過濾掉或者用其他詞語替換掉。
思路:將用戶的聊天內容保存到一個字符串對象或一個StringBuilder對象中,然后與敏感詞語進行比對。如果屬于敏感詞語,就過濾掉或替換掉。

正則解法:

public class Genghuan {public static String gh(String str){return str.replaceAll("(?:性|色情|爆炸|恐怖|槍)","*");? } } public class main {public static void main(String[] args) {String str = "你性福嗎,色情這個東西,恐怖分子拿著槍,闖進了銀行!";String gh = Genghuan.gh(str);System.out.println(gh);} }

StringBuffer 解法:

package com.changyongleiku.hw.hw_2;public class mmIN {public static void main(String[] args) {String[] a = {"性","爆炸","在這里","怎樣"};String aa = "asdad性sdjafj爆炸sdsad性是否奈法在這里啊,你要怎么樣怎樣啊";StringBuffer ss = new StringBuffer(aa);for (int i = 0; i < a.length; i++) {StringBuffer aaaa = new StringBuffer();for (int j = 0; j < a[i].length(); j++) {aaaa.append("*");}for(;;) {ss.replace(ss.indexOf(a[i]), ss.indexOf(a[i]) + a[i].length(), String.valueOf(aaaa));if(ss.indexOf(a[i])<0){break;}}}ss.toString();System.out.println(ss);} }

練習三:

在注冊時通常要驗證用戶名和密碼是否合法,運用學習過的知識完成如下操作:
用戶名長度大于等于6位,必須包含數字和英文字母
密碼長度大于等于8位,必須包含特殊符合_或者$,英文字母以及數字
以上兩個條件同時成立注冊才能成功。

正則解法:

public class ZhuCe {private String usename;private String password;public void check(String username, String password) {if ((username.length() < 6 || password.length() < 8) && (username != "^(\\d+[A-Za-z]+[A-Za-z0-9]*)|([A-Za-z]+\\d+[A-Za-z0-9]*)$"|| password != "^[[0-9]+[a-zA-Z]+[$|_]+]+$")) {System.out.println("注冊失敗");} else {System.out.println("注冊成功");}}public String getUsename() {return usename;}public void setUsename(String usename) {this.usename = usename;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;} }public ZhuCe() {}public ZhuCe(String usename, String password) {this.usename = usename;this.password = password;} public class main {public static void main(String[] args) {ZhuCe z = new ZhuCe();Scanner scan = new Scanner(System.in);System.out.println("請輸入要注冊的賬號:");String zhanghao = scan.next();System.out.println("請輸入要注冊的密碼:");String mima = scan.next();z.setUsename(zhanghao);z.setPassword(mima);z.check(z.getUsename(), z.getPassword());} }

Character解題:

package com.changyongleiku.hw.hw_3;public class User1 {//注冊賬號功能public boolean verifyUserName(String username){if(username.length()>=6&&containsDigit(username)&&containsLetter(username)&&!containsSpecialChar(username)&&!containsOtherSpecialChar(username)){return true;}return false;}//注冊密碼public boolean verifyPassword(String password){if(password.length()>=8&&containsDigit(password)&&containsLetter(password)&&containsSpecialChar(password)&&!containsOtherSpecialChar(password)){return true;}return false;}// 是否包含數字public boolean containsDigit(String str){char[] chars = str.toCharArray();for (int i = 0; i < chars.length; i++) {if(Character.isDigit(chars[i])){return true;}}return false;}// 是否包含字母public boolean containsLetter(String str){char[] chars = str.toCharArray();for (int i = 0; i < chars.length; i++) {if(Character.isLetter(chars[i])){return true;}}return false;}// 是否包含_或者$public boolean containsSpecialChar(String str){char[] chars = str.toCharArray();for (int i = 0; i < chars.length; i++) {if(chars[i]=='_'||chars[i]=='$'){return true;}}return false;}// 是否包含其他字符public boolean containsOtherSpecialChar(String str){char[] chars = str.toCharArray();for (int i = 0; i < chars.length; i++) {if(chars[i]!='_'&&chars[i]!='$'&&!Character.isDigit(chars[i])&&!Character.isLetter(chars[i])){return true;}}return false;} } package com.changyongleiku.hw.hw_3;public class mmmmAin {public static void main(String[] args) {User1 us = new User1();boolean a1 = us.verifyUserName("asdawweqf123");boolean a2 = us.verifyPassword("asdaszc12151_");if(a1 && a2){System.out.println("注冊成功!");}else{System.out.println("注冊失敗!");}} }

總結

以上是生活随笔為你收集整理的Java常用类库(Object类、String类、StringBuffer类、包装类、Math类、System类)详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。