一、Arrays工具类
java.util.Arrays类中提供的操作数组的方法
二、java.lang.String
1、构造方法
方法 | 描述 |
---|---|
String() | 无参构造 |
String(byte[] bytes) | 根据字节数组创建String对象 |
String(byte[] bytes, int offset, int length) | 根据字节数组bytes中从offset开始的length个字节生成String对象 |
String(byte[] bytes, int offset, int length, String charsetName) | 指定charsetName编码格式 |
String(byte[] bytes, String charsetName) | 把bytes字节数组中的字节根据charsetName编码格式转换为String对象 |
String(char[] value) | 根据字符数组创建String对象 |
String(char[] value, int offset, int count) | 把value数组从offset开始的count个字符生成 String对象 |
String(String original) | 根据已有的String创建新的String对象 |
String(StringBuffer buffer) | 根据StringBuffer对象创建String对象 |
String(StringBuilder builder) | 根据StringBuidler对象创建String对象 |
2、常用方法
方法返回值 | 方法与描述 |
---|---|
char | charAt(int index) 返回指定索引值对应的字符 |
int | compareTo(String anotherString) String类实现了Comparable接口, 重写Comaprable接口的方法,实现字符串大小的比较, 逐个字符比较,遇到第一个不相等的字符, 码值相减,如果第一个字符串大返回正数,第二个字符串大返回负数,相等返回0 |
int | compareToIgnoreCase(String str) 忽略大小写比较 |
String | concat(String str) 字符串的连接,在当前字符串的后面连接str |
boolean | contains(CharSequence s) 判断当前字符串中是否包含s子串 |
boolean | endsWith(String suffix) 判断当前字符串是否以suffix结尾 |
boolean | equals(Object anObject) 重写equals(),判断两个字符串的内容是否一样 |
boolean | equalsIgnoreCase(String anotherString) 忽略大小写 |
static String | format(String format, Object… args) 字符串的格式化 |
byte[] | getBytes() 返回当前字符串在默认编码格式下对应的字节数组 |
byte[] | getBytes(String charsetName) 返回当前字符串在指定编码格式charsetName下对应的字节数组 |
void | getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 把当前字符串[srcBegin,srcEdn)范围的字符复制到dst数组的dstBegin位置 |
int | hashCode() |
int | indexOf(int ch) 返回字符ch在当前字符串第一次出现的位置,字符在计算机中存储的字符的码值, int num = ‘中’ |
int | indexOf(int ch, int fromIndex) 返回字符ch在当前字符串从fromIndex开始第一次出现的位置 |
int | indexOf(String str) 返回字符串str在当前字符串第一次出现的位置 |
int | indexOf(String str, int fromIndex) |
String | intern() 返回当前字符串对应的字符串字面量 |
boolean | isEmpty() 判断字符串是否为空串 |
int | lastIndexOf(int ch) 返回字符ch在当前字符串最后一次出现的位置 |
int | lastIndexOf(int ch, int fromIndex) |
int | lastIndexOf(String str) 返回字符串str在当前字符串最后一次出现的位置 |
int | lastIndexOf(String str, int fromIndex) |
int | length() 返回字符串中字符的个数 |
boolean | matches(String regex) 判断当前字符串是否匹配指定的正则表达式 |
String | replaceAll(String regex, String replacement)把当前字符串中符合 regex正则表达式的字符替换为replacement |
String[] | split(String regex) 使用正则表达式regex分隔当前字符串 |
boolean | startsWith(String prefix)判断是否以指定的prefix开始 |
String | substring(int beginIndex, int endIndex) 返回[beginIndex, endIndex)范围内的字符串 |
String | substring(int beginIndex) 返回从beginIndex开始的字符串 |
char[] | toCharArray() 把字符串转换为字符数组 |
String | toLowerCase() 把大写字母转换为小写字母 |
String | toString() |
String | toUpperCase() 小写转大写 |
String | trim() 去掉字符串前后的空白字符 |
static String | valueOf(int i) 把基本类型转换为String对象 |
static String | valueOf(Object obj) 把引用类型转换为字符串 |
3、字符串相关
String字符串对象是不可变的,每次进行字符串操作都会生成新的String对象
String类的value数组是final修饰的,不能修改, value数组的大小根据字符串的个数创建
-
String s1 = "hello"; s1字符串的value数组长度为5
当频繁进行字符串操作时,不建议使用String对象,而使用StringBuilder/StringBuffer
-
- StringBuilder/StringBuffer中的value数组没有final修饰符,可变的字符串, 可以修改它的value数组, 对sb对象进行操作,不会生成新的sb对象,不仅可以向value数组中添加字符,还可以对value数组扩容
-
- 最常用的方法是 : append()
-
- 默认初始化容量: 16
-
- 默认扩容: value.length * 2 + 2
-
- StringBuffer提供的操作都使用了synchronized修饰, 它是线程安全的,StringBuilder不是线程安全的
三、包装类
1、Java为每一个基本类型都提供了一个对应的包装类
基本类型 | 对应的包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
2、包装类的常用方法
Integer(int) |
---|
Integer(String) |
byteValue()/shortValue()/intValue()/longValue()/floatValue()/DoubleValue() |
compareTo() / equals() 根据它的基本类型的值进行比较大小 |
parseXXX(String) 把数字字符串转换为基本类型 |
valueOf(String)/ valueOf(int) 把字符串/基本类型转换为包装类对象 |
toBinaryString()/ toOctalString()/toHexString() 转换为二进制/八进制/十六进制 |
以Integer为例
返回值 | 方法与描述 |
---|---|
byte | byteValue() 把包装类对象转换为byte基本类型数据 |
int | compareTo(Integer anotherInteger) 实现了Comparable接口, 每个包装类都有一个value字段对应的基本类型的数据, 根据基本类型数据value的值比较大小 |
boolean | equals(Object obj) 重写equals(), 根据value字段的值判断 |
static int | parseInt(String s) 把字符串转换为基本类型 |
static String | toBinaryString(int i) 把整数i转换为二进制字符串 |
static String | toHexString(int i) 把整数i转换为16进制字符串 |
static String | toOctalString(int i) 八进制 |
String | toString() |
static String | toString(int i) 把整数i转换为字符串 |
static Integer | valueOf(int i) 把基本类型转换为包装类对象 |
static Integer | valueOf(String s) 把字符串转换为包装类对象 |
3、装箱与拆箱
把基本类型转换为包装类对象就是装箱
把包装类对象转换为基本类型就是拆箱
在Java中,装箱与拆箱可以自动进行
注意:-128~127范围的整数装箱时,采用享元模式
-128~127范围内的整数装箱后生成的包装类对象存储在方法区的常量池中