API(Application Programming Interface)是指应用程序的编程接口。
-
字符串类
Java中定义了3个封装字符串的类,分别是String类、StringBuffer类、StringBuilder类,它们位于Java.lang包中,并提供了一系列操作字符串的方法,这些方法不需要导包就可以直接使用。
1.1 String的初始化
定义一个空的字符串
String str1 = new String(); //名为str1的空字符串
创建一个内容为xyz的字符串
String str2 = new String("xyz"); //名为str2的字符串,内容为xyz
创建一个内容为字符数组的字符串
char[] charArray = new char[] {'D','E','F'};
String str3 = new String(charArray);
//创建一个名为charArray的char类型字符数组并将charArray赋值给名称为str3的字符串
创建一个内容为字节数组的字符串
byte[] arr = {12,16,18};
String str4 = new String (arr);
创建了名称为arr的byte类型的字节数组并将arr赋值给str4
1.2 String类的常见操作
indexOf (int ch) 返回ch在字符串中第一次出现位置的索引
length() 返回此字符串的长度
equals(ch1 an ch2) 将此字符串与指定的字符串比较
contains() 判断此字符串中是否包含指定的字符序列
replace() 替换(123456789————123***789)
substring() 截取
案例1.将手机号中间四位隐藏
String s2 = "12345678910";
System.out.println("将中间四位替换成****:"+s2.replace(s2.substring(s2.length()-8,s2.length()-4),"****"));
案例2.将身份证后四位隐藏
String a = "413422199213455639";
System.out.println("将后四位替换成****:"+a.replace(a.substring(a.length()-4,a.length()),"****"));
1.3 StringBuffer类
由于字符串是常量一旦生成其内容和长度是不可改变的。为了对其进行改变,Java提供了一个StringByffer类,也被称为字符串缓冲区。StringBuffer类和String类最大的区别就是它的内容和长度都是可以改变的,可以在里面任意添加和删除数据。
append() 添加参数到StringBuffer对象中
insert(1哪个位置,2要插入的字符串) 在字符串1的位置插入字符串2
deleteCharAt(序列名) 删除此序列指定位置的字符
delete(1开始,2结束) 删除(从1开始到2结束范围内)指定的字符或序列
replace(1开始,2结束,3要插入的内容) 把从1到2内的字符替换为3要插入的内容
reverse() 将此字符序列勇用其反转形式取代(abc——cba)
1.4 StringBuilder类
StringBuffer类、StringBuilder类
StringBuffer类、StringBuilder类都可以用于对字符串进行修改,它们的对象也都可以被进行多次修改并不会产生新的未使用对象。但是它们的不同之处在于StringBuilder类是JDK5中新加入的类,StringBuilder的方法是非线程安全的,简单来说就是StringBuffer类不能被同步访问 ,而StringBuilder类可以。
获取当前日期
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class c2 {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattendDateTime = now.format(formatter);
System.out.println("获取当前日期:"+formattendDateTime);
}
}
验证输入手机号格式是否正确
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class c3 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入11位手机号:");
String phone = s.next();
String regex = "^[13|15|18|14|17|19]\\d{9}$";//
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(phone);
if (matcher.matches()){
System.out.println("您输入的手机号是有效的。");
}else{
System.out.println("您输入的手机号是无效的!");
}
判断输入的邮箱格式是否准确
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class c4 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入您的邮箱帐号:");
String mailbox = s.next();
String regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";//
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(mailbox);
if (matcher.matches()) {
System.out.println("您输入的邮箱格式正确。");
} else {
System.out.println("您输入的邮箱格式是无效的!");
}
}
}
模拟用户登录,一共有三次登陆机会,三次都错误显示登陆失败
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String name="cheng"; //名字cheng
String password="123456"; //密码123456
Scanner sc=new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入用户名:");
String username = sc.next();
System.out.println("请输入密码:");
String userPassword=sc.next();
if(name.equals(username)&&password.equals(userPassword)){
System.out.println("登陆成功!");
break;
}
else{
if(2-i==0){
System.out.println("您的登录次数已用完,无法继续登陆!");
}else{
System.out.println("用户名或密码错误,您还剩余"+(2-i)+"次机会");
}
}
}
}
}
2 Runtime类
Runtime表示虚拟机运行时的状态,它用于封装Java虚拟机进程。
2.1.获取当前虚拟机信息
import java.io.IOException;
import java.time.LocalDate;
import java.util.Random;
public class Main {
public static void main(String[] args) throws InterruptedException {
Runtime rt = Runtime.getRuntime();
System.out.println("处理器的个数:" + rt.availableProcessors() + "个数");
System.out.println("空闲内存数量:" + rt.freeMemory() / 1024 / 1024 + "M");
System.out.println("最大可用内存数量:" + rt.maxMemory() / 1024 / 1024 + "M");
try {
rt.exec("notepad.exe");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
3 Math类和Random类
3.1 Math类
Math类提供了大量的静态方法以便人们实现数学运算
abs(a) 求a的绝对值
sqrt(a) 求a的方根
ceil(a) 大于等于a的最小整数
floor(a) 小于等于a的最大的整数
round(a) 对小数a四舍五入后a的值
max(a,b...) 返回a和b中较大的值
min(a,b...) 返回a和b中较小的值
random() 随机生成一个(0,1]的值
pow(a,b) a的b次方,a^b
3.2Random类
Random类是Java.util包中的一个类,它可以在指定范围内生成随机的数字。
Random() 用于构造一个伪随机数生成器(无参,每次生成的都不一样)
import java.util.Random;
public static c1{
public static void main (String args[]){
Random r = new Random();
for(int x = 0;x < 10;x++){
System.out.println(r.nextInt(100))
}
}
}
4 正则表达式
正则表达式就是指一个用来描述或者匹配一系列符合某种语法规则的字符串的单个字符串,其实就是一种规则。
4.1元字符
元字符 | 功能 |
\ | 转义字符,例如\n |
^ | 正则表达式开头的标志 |
$ | 正则表达式结束的位置 |
+ | 匹配一次或多次 |
\d | 匹配0~9 |
[a-zA-Z] | 匹配a~z和A~Z |
例如上边提到的,手机号格式:
String regex = "^[13|15|18|14|17|19]\\d{9}$";
邮箱格式:
String regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";//
结束~
标签:java,String,System,字符串,API,println,out From: https://blog.csdn.net/qq_55830662/article/details/143769386