JavaAPI【笔记】

Java API

1 String类

(1)String的初始化
1)使用字符串常量直接初始化一个String对象

格式:

String 变量名= 字符串;

例如:

	String str1 = null;    // 初始化为空
    String str2 = "";      // 初始化为空字符串
    String str3 = "abc";  // 初始化为abc,其中abc为字符串常量
2)使用String的构造方法初始化字符串对象

格式:

String 变量名 = new String(字符串);

String类中常用的构造方法:

方法声明功能描述
String()创建一个内容为空的字符串
String(String value)根据指定的字符串内容创建对象
String(char[] value)根据指定的字符数组创建对象

例如:

String str1 = new String();  //创建一个空串""
String str2 = new String("abc"); //创建指定内容字符串
char[] ch = {'a','b','c'}
String str3 = new String(ch); // 根据指定字符数组创建对象
(2)String类常用方法
方法声明功能描述
int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引
int lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引
int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引
int lastIndexOf(String str)返回指定子字符串在此字符串中最后一次出现处的索引
char charAt(int index)返回字符串中index位置上的字符,其中index的取值范围是:0~(字符串长度-1)
boolean endsWith(String suffix)判断此字符串是否以指定的字符串结尾
int length()返回此字符串的长度
boolean equals(Object anObject)将此字符串与指定的字符串比较
boolean isEmpty()当且仅当字符串长度为0时返回true
boolean startsWith(String prefix)判断此字符串是否以指定的字符串开始
boolean contains(CharSequence cs)判断此字符串中是否包含指定的字符序列
方法声明功能描述
String toLowerCase()使用默认语言环境的规则将String中的所有字符都转换为小写
String toUpperCase()使用默认语言环境的规则将String中的所有字符都转换为大写
static String valueOf(int i)返回 int 参数的字符串表示形式
char[] toCharArray()将此字符串转换为一个字符数组
String replace(CharSequence oldstr, CharSequence newstr)返回一个新的字符串,它是通过用newstr替换此字符串中出现的所有oldstr得到的
String[] split(String regex)根据参数regex(regex是一个正则表达式,用来限定分隔规则)将字符串分割为若干个子字符串
String substring(int beginIndex)返回一个新字符串,它包含从指定的beginIndex起始角标处开始,直到此字符串末尾的所有字符
String substring(int beginIndex, int endIndex)返回一个新字符串,它包含从指定的beginIndex起始角标处开始,直到索引endIndex-1角标处的所有字符
String trim()返回一个新字符串,它去除了原字符串首尾的空格
1)转换
String toLowerCase()使用默认语言环境的规则将String中的所有字符都转换为小写
String toUpperCase()使用默认语言环境的规则将String中的所有字符都转换为大写
char[] toCharArray()将此字符串转换为一个字符数组

例如:

        String str1 = "ABC";
        System.out.println("转小写:"+str1.toLowerCase());
        String str2 = "abc";
        System.out.println("转大写:"+str2.toUpperCase());
        String str3 = "abc123";
        System.out.println("str3转字符数组:"+ Arrays.toString(str3.toCharArray()));
        int a = 123;
        System.out.println("其它数据转字符串:"+String.valueOf(a));
2)判断
boolean endsWith(String suffix)判断此字符串是否以指定的字符串结尾
boolean startsWith(String prefix)判断此字符串是否以指定的字符串开始
boolean isEmpty()当且仅当字符串长度为0时返回true
boolean contains(CharSequence cs)判断此字符串中是否包含指定的字符序列
boolean equals(Object anObject)将此字符串与指定的字符串比较

例如:

		String str1 = "abc123abc123";
        System.out.println("str1是以abc开头吗?"+str1.startsWith("abc"));
        System.out.println("str1是以123结尾吗?"+str1.endsWith("123"));
        System.out.println("str1是空串吗?"+str1.isEmpty());
        System.out.println("str1包含c12吗?"+str1.contains("c12"));
        String str2 = "abc123abc123";
        System.out.println("str1和str2相同吗?"+str1.equals(str2));

思考:

 		String str1 = "abc";
        String str2 = "abc";
        String str3 = new String("abc");
        System.out.println("str1.equals(str2)吗?"+str1.equals(str2));
        System.out.println("str1==str2吗?"+(str1==str2));
        System.out.println("str1.equals(str3)吗?"+str1.equals(str3));
        System.out.println("str1==str3吗?"+(str1==str3));
3)获取
int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引
int lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引
int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引
int lastIndexOf(String str)返回指定子字符串在此字符串中最后一次出现处的索引
char charAt(int index)返回字符串中index位置上的字符,其中index的取值范围是:0~(字符串长度-1)
int length()返回此字符串的长度

例如:

        String str1 = "abc123abc123";
        System.out.println("c第一次出现的索引值:"+str1.indexOf("c"));
        System.out.println("c最后一次出现的索引值:"+str1.lastIndexOf("c"));
        System.out.println("索引值3对应的字符是:"+str1.charAt(3));
 		System.out.println("字符串长度:"+str1.length());	

注意:

charAt(int index) :访问字符串中的字符时,不能超出字符的索引范围,否则会出现异常,这与数组中的角标越界异常相似

例如:

String str1 = "abc";
//报错:java.lang.StringIndexOutOfBoundsException: String index out of range
System.out.println("索引值5对应的字符是:"+str1.charAt(5));
4)其它
String replace(CharSequence oldstr, CharSequence newstr)返回一个新的字符串,它是通过用newstr替换此字符串中出现的所有oldstr得到的
String[] split(String regex)根据参数regex(regex是一个正则表达式,用来限定分隔规则)将字符串分割为若干个子字符串
String substring(int beginIndex)返回一个新字符串,它包含从指定的beginIndex起始角标处开始,直到此字符串末尾的所有字符
String substring(int beginIndex, int endIndex)返回一个新字符串,它包含从指定的beginIndex起始角标处开始,直到索引endIndex-1角标处的所有字符
String trim()返回一个新字符串,它去除了原字符串首尾的空格

例如:替换

        String str1 = "abc123abc123";
        System.out.println("把123替换成456:"+str1.replace("123","456"));

例如:分割

        String str2 = "2021-9-8";
        String[] split = str2.split("-");
        System.out.println("按照-分割:"+Arrays.toString(split));

例如:截取

        String str3 = "abc123abc123";
        System.out.println("截取c123abc123:"+str3.substring(2));
        System.out.println("截取123abc:"+str3.substring(3,9));

例如:去除空格

        String str4 = "  hello world     ";
        System.out.println("截取字符串2端空格:"+str4.trim());

2 StringBuffer类

在Java中,由于String类是final类型的,所以使用String定义的字符串是一个常量,因此它一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符串。
解决方法:可以使用StringBuffer类(也称字符串缓冲区)来操作字符串。
说明:StringBuffer类和String类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或删除字符时,所操作的都是这个字符容器,因此并不会产生新的StringBuffer对象。

StringBuffer常用方法:

方法声明功能描述
StringBuffer append(char c)添加字符到StringBuffer对象中末尾
StringBuffer insert(int offset,String str)在StringBuffer对象中的offset位置插入字符串str
StringBuffer deleteCharAt(int index)移除StringBuffer对象中指定位置的字符
StringBuffer delete(int start,int end)删除StringBuffer对象中指定范围的字符或字符串
StringBuffer replace(int start,int end,String s)将StringBuffer对象中指定范围的字符或字符串用新的字符串s进行替换
void setCharAt(int index, char ch)修改指定位置index处的字符
String toString()返回StringBuffer缓冲区中的字符串对象
StringBuffer reverse()将此StringBuffer对象用其反转形式取代

例如:

        StringBuffer sb = new StringBuffer("abc");
        sb.append("123");//末尾添加
        System.out.println(sb.toString());
        sb.insert(3,"def");// 指定位置添加
        System.out.println(sb.toString());
        sb.setCharAt(6,'g');//修改指定index位置的字符
        System.out.println(sb.toString());
        sb.replace(3,6,"hello world"); //用新字符串替换指定范围的字符串
        System.out.println(sb.toString());
        sb.deleteCharAt(14);//根据index删除一个字符
        System.out.println(sb.toString());
        sb.delete(8,14); //删除指定范围的字符串
        System.out.println(sb.toString());
        sb.reverse(); //反转
        System.out.println(sb.toString());

3 StringBuilder类

​ StringBuilder与StringBuffer方法基本相同

注意:

String/StringBuffer/StringBuilder区别

StringStringBufferStringBuilder
String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量可变类,速度更快
不可变可变可变
线程安全线程不安全
多线程操作字符串单线程操作字符串

4 System类

System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。

System类常用方法:

方法声明功能描述
static void exit(int status)该方法用于终止当前正在运行的Java虚拟机,其中参数status表示状态码,若状态码非0 ,则表示异常终止
static void gc()运行垃圾回收器,并对垃圾进行回收
static native long currentTimeMillis()返回以毫秒为单位的当前时间
static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)从src引用的指定源数组复制到dest引用的数组,复制从指定的位置开始,到目标数组的指定位置结束
static Properties getProperties()取得当前的系统属性
static String getProperty(String key)获取指定键描述的系统属性

例如:

		long l = System.currentTimeMillis();//当前时间戳
        System.out.println(time);
		int[] arr = {1,2,3,4};
        int[] arr2 = new int[4];
        System.arraycopy(arr,1,arr2,2,2);
        System.out.println(Arrays.toString(arr2));

5 Date

​ Date类代表了一个特定的时间,以毫秒的精度

(1)构造方法

	//或当前时间对象
	Date date = new Date();
	//根据时间戳创建Date对象
	Date date = new Date(时间戳);

(2)常用方法

	//获取当前时间戳 :返回自1970年1月1日以来,由 Date对象表示的00:00:00 GMT的毫秒数。
	long time = date.getTime();

6 SimpleDateFormat

​ 格式化和解析日期

如何描述日期和时间格式化的模式

y“yyyy” —>“2021”
M“MM” —> “10”
d“dd” —> “25”
H“HH” —> “15”
m“mm” —> “25”
s“ss” —> “30”

例如:

“yyyy-MM-dd HH:mm:ss”“2021-10-25 15:25:30”
“yyyy/MM/dd HH:mm:ss”“2021/10/25 15:25:30”
“yyyy/MM/dd”“2021/10/25”
“HH:mm:ss”“15:25:30”
“HH-mm-ss”“15-25-30”

常用方法-1:

        //将日期(Date)格式化成字符串(String)
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = sdf.format(new Date());
        System.out.println(time);

常用方法-2

        //将字符串(String)格式化成日期(Date)
        String time = "2021/10/25 15:30:33";
		//必须要和字符串中日期和时间格式保持一致
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = sdf.parse(time);

7 Calendar

​ 日历

常用方法-1:

        //创建当前时间日历对象
		Calendar c = Calendar.getInstance();
		//获取年
        int year = c.get(Calendar.YEAR);
		//获取月
        int month = c.get(Calendar.MONTH);//0-11
		//获取日
        int day = c.get(Calendar.DAY_OF_MONTH);
		//获取时(12小时制)
        int hour_12 = c.get(Calendar.HOUR);
		//获取时(24小时制)
        int hour_24 = c.get(Calendar.HOUR_OF_DAY);
		//获取分
        int minute = c.get(Calendar.MINUTE);
		//获取秒
        int secod = c.get(Calendar.SECOND);
        System.out.println("年:"+year);
        System.out.println("月:"+month);
        System.out.println("日:"+day);
        System.out.println("时(12小时制):"+hour_12);
        System.out.println("时(24小时制):"+hour_24);
        System.out.println("分:"+minute);
        System.out.println("秒:"+secod);

常用方法-2

		//创建指定年月日时分秒的Calendar对象
		Calendar c1 = Calendar.getInstance();
        c1.set(2020,1,20,8,22,33);

		//根据时间戳创建Calendar对象
		Calendar c2 = Calendar.getInstance();
        c2.setTimeInMillis(1635145867208L);

		//获取时间戳
        long timeInMillis = c2.getTimeInMillis();
        System.out.println(timeInMillis);

常用方法-3

		//获取日历对象
		Calendar c = Calendar.getInstance();
		//Calendar转Date
        Date date = c.getTime();
		
		//获取日历对象
        Calendar c2 = Calendar.getInstance();
		//Date对象转Calendar
        c2.setTime(date);

8 Random

​ 随机数生成器

常用方法:

        Random random = new Random();//创建Randon对象
        int num1 = random.nextInt();//随机生成一个整数
        int num2 = random.nextInt(10);//随机生成一个[0,10)之间的数
        System.out.println("num1="+num1);
        System.out.println("num2="+num2);
  • 28
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值