实验八、常用实用类
1、字符串比较
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s3==s4);
System.out.println(s3.equals(s4));
}
}
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s1==s4);
System.out.println(s1.equals(s4));
}
}
2、正则表达式
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s1==s4);
System.out.println(s1.equals(s4));
s1="5cat";
System.out.println(s1.matches("\\dcat"));
}
}
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s1==s4);
System.out.println(s1.equals(s4));
s1="acat";
System.out.println(s1.matches("\\dcat"));
}
}
//元字符
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s1==s4);
System.out.println(s1.equals(s4));
s1="5cat";
System.out.println(s1.matches("\\dcat"));
System.out.println(s1.matches("[135]cat"));
}
}
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s1==s4);
System.out.println(s1.equals(s4));
s1="6cat";
System.out.println(s1.matches("\\dcat"));
System.out.println(s1.matches("[135]cat"));
}
}
- z A-Z|0-9|下划线]+”与任何由英文字母,下划线,数字
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s1==s4);
System.out.println(s1.equals(s4));
s1="6acat";
System.out.println(s1.matches("\\dcat"));
System.out.println(s1.matches("[135]cat"));
System.out.println(s1.matches("[a-zA-Z|0-9|_]+cat"));
}
}
public class test {
public static void main(String[] args) {
String s1="abc",s2="abc",s3=new String("abc"),s4=new String("abc");
System.out.println(s1==s4);
System.out.println(s1.equals(s4));
s1="6a_+cat";
System.out.println(s1.matches("\\dcat"));
System.out.println(s1.matches("[135]cat"));
System.out.println(s1.matches("[a-zA-Z|0-9|_]+cat"));
}
}
String str ="12hello567bird".replaceAll("[a-zA-Z]+","你好");
//字符串的分解
import java.util.Scanner;
public class test2 {
public static void main (String args[ ]) {
System.out.println("一行文本:");
Scanner reader=new Scanner(System.in);
String str ="regex<=>?@[\\匹配 由空格、数字和!\"#$%$'()*+,-.]^_'{|}~组成的字符序列";
String regex = "[\\s\\d\\p{Punct}]+";
String words[] = str.split(regex);
for(int i=0;i<words.length;i++){
int m = i+1;
System.out.println("单词"+m+":"+words[i]);
}
}
}
public class test3 {
public static void main(String[] args) {
StringBuffer s1=new StringBuffer("abcde");
s1.append("1234567891234567") ;
System.out.println(s1.capacity());
System.out.println(s1);
}
}
public class test3 {
public static void main(String[] args) {
StringBuffer s1=new StringBuffer("abcde");
s1.append("12345678901234567") ;
System.out.println(s1.capacity());
System.out.println(s1);
}
}
//逆序
s1.reverse();
例如用LocalTime给程序计时
LocalTime n1= LocalTime.now();//程序开始时
……
LocalTime n1= LocalTime.now();//程序结束时
System.out.println(n1.until(n2, ChronoUnit.NANOS));//输出纳秒值
import java.time.*;
import java.time.temporal.ChronoUnit;
public class test4 {
public static void main(String args[ ]) {
LocalDate dateOne = LocalDate.now();
System.out.println("本地日期:"+dateOne);
LocalDate dateTwo = LocalDate.of(2025,1,22);
System.out.println("自定日期:"+dateTwo);
System.out.println(dateOne+"在"+dateTwo+"之后:"+dateOne.isAfter(dateTwo));
System.out.println(dateOne+"在"+dateTwo+"之前:"+dateOne.isBefore(dateTwo));
System.out.println(dateOne+"和"+dateTwo+"相同:"+dateOne.isEqual(dateTwo));
int year = 18,month = 23,day = 8976;
LocalDate dateAgo=dateOne.plusYears(-year);
System.out.println(dateOne+" "+ year+"年前是:\n"+dateAgo);
System.out.println("那天是"+dateAgo.getDayOfWeek());
LocalDate dateAfter=dateTwo.plusYears(year).plusMonths(month).plusDays(8976);
System.out.println(dateTwo+"再过"+year+"年"+month+"个月"+day+"天之后是:");
System.out.println(dateAfter);
System.out.println("那天是"+dateAfter.getDayOfWeek());
int second = 1897;
LocalTime time = LocalTime.of(23,30,1);
LocalTime nextTime = time.plusSeconds(second);
System.out.println(time+"再过"+second+"秒是:"+nextTime);
System.out.println(dateOne.until(dateTwo, ChronoUnit.DAYS));
}
}
运行结果:
本地日期:2023-11-02
自定日期:2025-01-22
2023-11-02在2025-01-22之后:false
2023-11-02在2025-01-22之前:true
2023-11-02和2025-01-22相同:false
2023-11-02 18年前是:
2005-11-02
那天是WEDNESDAY
2025-01-22再过18年23个月8976天之后是:
2069-07-20
那天是SATURDAY
23:30:01再过1897秒是:00:01:38
447
import java.time.*;
import java.time.temporal.ChronoUnit;
public class test4 {
public static void main(String args[ ]) {
LocalTime n1=LocalTime.now();
LocalDate dateOne = LocalDate.now();
System.out.println("本地日期:"+n1);
LocalDate dateTwo = LocalDate.of(2025,1,22);
System.out.println("自定日期:"+dateTwo);
System.out.println(dateOne+"在"+dateTwo+"之后:"+dateOne.isAfter(dateTwo));
System.out.println(dateOne+"在"+dateTwo+"之前:"+dateOne.isBefore(dateTwo));
System.out.println(dateOne+"和"+dateTwo+"相同:"+dateOne.isEqual(dateTwo));
int year = 18,month = 23,day = 8976;
LocalDate dateAgo=dateOne.plusYears(-year);
System.out.println(dateOne+" "+ year+"年前是:\n"+dateAgo);
System.out.println("那天是"+dateAgo.getDayOfWeek());
LocalDate dateAfter=dateTwo.plusYears(year).plusMonths(month).plusDays(8976);
System.out.println(dateTwo+"再过"+year+"年"+month+"个月"+day+"天之后是:");
System.out.println(dateAfter);
System.out.println("那天是"+dateAfter.getDayOfWeek());
int second = 1897;
LocalTime time = LocalTime.of(23,30,1);
LocalTime nextTime = time.plusSeconds(second);
System.out.println(time+"再过"+second+"秒是:"+nextTime);
System.out.println(dateOne.until(dateTwo, ChronoUnit.DAYS));
LocalTime n2=LocalTime.now();
System.out.println(n1.until(n2, ChronoUnit.NANOS));
}
}
运行结果:
本地日期:09:33:08.992970400
自定日期:2025-01-22
2023-11-02在2025-01-22之后:false
2023-11-02在2025-01-22之前:true
2023-11-02和2025-01-22相同:false
2023-11-02 18年前是:
2005-11-02
那天是WEDNESDAY
2025-01-22再过18年23个月8976天之后是:
2069-07-20
那天是SATURDAY
23:30:01再过1897秒是:00:01:38
447
21927100
public class test5 {
public static void main(String[] args) {
//随机数
System.out.println(Math.random());
}
}
import java.util.Random;
public class test5 {
public static void main(String[] args) {
//随机数
Random r=new Random(3);
//随机整数
System.out.println(r.nextInt(100));
}
}
import java.math.BigInteger;
import java.util.Random;
public class test5 {
public static void main(String[] args) {
//随机数
Random r=new Random(3);
//大整型数
BigInteger b1=new BigInteger("12345678912345678918237373");
BigInteger b2=new BigInteger("12345678912345678918237373");
System.out.println(b1.add(b2));
//随机整数
System.out.println(r.nextInt(100));
}
}