1.String /StringBuilder/ StringBuffer
String :不可变长字符串|字符序列
StringBuilder:可变长字符串 ,线程不安全,效率较高
StringBuffer:可变长字符串 ,线程安全的,效率较低
2.学习类的API:
String 类
作用:String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
构造器 String str=new String(); //构建一个空字符串数组
方法:
成员方法
静态方法
String(String original)
String(char[] value)
String(char[] value, int offset, int count)
String(byte[] bytes) 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
String(byte[] bytes, int offset, int length) 通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
String s=“因为”;
byte[] bytes=s.getBytes(“gbk”);
System.out.println(Arrays.toString(bytes));
System.out.println(new String(bytes,“utf-8”));
2.1 String 常用方法
1.char charAt(int index) 返回指定索引处的 char 值。
2.int codePointAt(int index) 返回指定索引处的字符(Unicode 代码点)。
3.int compareTo(String anotherString) 按字典顺序比较两个字符串。
相等为0 ,如果this比参数对象大返回整数,否则返回负数
4.compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写
5.String concat(String str) 将指定字符串连接到此字符串的结尾。
6.boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。
7.static String copyValueOf(char[] data) 返回指定数组中表示该字符序列的 String。
8.boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束。
9.boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始。
10.byte[] getBytes() 字符串转字节数组
11.int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。
12.String replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
13.String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
14.String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。
15.String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符串的一个子字符串。 结束位置索引获取不到
16.char[] toCharArray() 将此字符串转换为一个新的字符数组。
17.String toLowerCase()
18.String toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
19.String trim()返回字符串的副本,忽略前导空白和尾部空白。
20.static String valueOf(int i) 返回 int 参数的字符串表示形式。
2.2 StringBuilder()构造一个其中不带字符的字符串生成器,初始容量为 16 个字符。
StringBuilder sb=new StringBuilder();
System.out.println(sb);
sb.append(“abcdef”);
System.out.println(sb.length());
System.out.println(sb.capacity());
StringBuilder(int capacity)构造一个其中不带字符的字符串生成器,初始容量由 capacity 参数指定。
sb=new StringBuilder(10);
System.out.println(sb.capacity());
StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。
sb=new StringBuilder(“abc”);
sb.append(121);
System.out.println(sb);
System.out.println(sb.length());
System.out.println(sb.capacity());
StringBuilder delete(int start, int end) end取不到//删除指定范围的元素
sb.delete(3, 5);
System.out.println(sb);
StringBuilder insert(int offset, boolean b) //指定位置加入元素
sb.insert(3, false);
System.out.println(sb);
StringBuilder reverse() //元素反转
sb.reverse();
System.out.println(sb);
3.Math数学类
import static java.lang.Math.max;
public class Math01 {
public static void main(String[] args) {
//static double ceil(double a) 向上取整
System.out.println(Math.ceil(-3.3)); //-3.0
//static double floor(double a) 向下取整
System.out.println(Math.floor(-3.3)); //-4.0
/*
static long max(long a, long b)
返回两个 long 值中较大的一个。
static double min(double a, double b)
返回两个 double 值中较小的一个。
*/
System.out.println(max(5, 7));
}
}
4. * 基本数据类型的包装类
包装类
byte — Byte
short — Short
int — Integer
long — Long
char — Character
float — Float
double — Double
boolean — Boolean
自动装箱:基本数据类型–>包装类型
自动拆箱:包装类型–>基本数据类型
int a=5;
Integer i1=a; //自动装箱 Integer i1= Integer.valueOf(a);
int int1=i1; //自动拆箱 int int1=i1.intvalue()
注意:
Integer.valueOf(128);
缓冲区对象所表示的范围: [-128,127],在其范围之内是同一个Integer对象,在其范围之外,返回new Integer()
5. Date类
Date 日期
构造器:
Date() 以当前系统时间构建日期对象
Date(long date) 参数为毫秒数,默认从1970.1.1.0.0.0开始计算
注意:导包 java.util.Date
public class Date01 {
public static void main(String[] args) {
Date date=new Date();
System.out.println(date);
long l=date.getTime();
System.out.println(l);
date=new Date(1557133130296L);
System.out.println(date);
//日期对象转为字符串
String s=date.toString();
System.out.println(s.length());
/*
boolean after(Date when)
测试此日期是否在指定日期之后。
boolean before(Date when)
测试此日期是否在指定日期之前。
int compareTo(Date anotherDate)
比较两个日期的顺序。
boolean equals(Object obj)
比较两个日期的相等性。
*/
Date date2=new Date();
System.out.println(date2);
System.out.println(date2.after(date)); //true
System.out.println(date2.before(date)); //false
System.out.println(date2.before(date)); //false
System.out.println(date.compareTo(date2)); //-1
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
5.1更改日期显示格式:
/*
-
SimpleDateFormat 日期格式类|转换类|转换器
-
指定格式
-
y->年
-
M->月
-
d->日
-
H->24小时
-
h->12小时
-
m->分
-
s->秒
-
S->毫秒
-
format(Date)–>日期对象转为字符串,可以按照指定格式,可以使用转换器的默认格式
-
parse(String) -->把字符串转为日期对象,按照指定格式转换
*/
public class SimpleDateFormat02 {
public static void main(String[] args) throws ParseException {
SimpleDateFormat format=new SimpleDateFormat();
Date date=new Date();
System.out.println(format.format(date));//19-5-6 下午5:05
SimpleDateFormat format2=new SimpleDateFormat(“yyyy/MM/dd E a hh:mm:ss SSS”);
System.out.println(format2.format(date)); //2019/05/06 05:06:57 182String str="2019年05月06日 05:09:26"; SimpleDateFormat format3=new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss"); System.out.println(format3.parse(str));
}
}