1.基础方法
int length();
获取字符串长度 “”
1.char charAt(int index);
获取指定下标位置的元素
2.int indexOf(char ch);
找出指定元素的下标
3.int indexOf(String str);
找出指定字符串的下标
4.int indexOf(char ch, int fromIndex);
5.int indexOf(String str, int fromIndex);
字符或者字符串第一次出现的位置
int lastIndexOf(char ch);
int lastIndexOf(String str);
int lastIndexOf(char ch, int fromIndex);
int lastIndexOf(String str, int fromIndex);
这些方法都是获取指定元素所在的下标位置,元素可以是char类型字符,也可以是字符串。这里找出的是指定元素在字符串中最后一次出现的位置,当然可以通过一定的约束,从哪个位置开始找fromIndex
2.判断方法
boolean endsWith(String str);
判断当前字符串是不是以指定字符串结尾
boolean isEmpty();
判断字符串是否为空 ""空串 JDK1.6之后 null不能读取,不能写入,不能调用方法
boolean equals(Object obj);
继承重写Object类内的方法,完成字符串要求的比较方式
boolean equalsIgnoreCase(String str);
不区分大小写比较 boolean contains(String str); 判断指定字符串是否存在
3.转换方法
String(char[] arr);
使用字符数组中内容创建一个字符串对象
String(char[] arr, int offset, int length);
String(char[] arr, int off, int len);
String(char[] arr, int off, int cou);
String(char[] arg0, int arg1, int arg2);
使用字符数组中内容创建一个字符串对象,offset是从char类型数组中指定下标位置开始获取数据,获取的数据长度是length
static String valueOf(char[] arr);
通过类名调用的静态方法,实际执行的是String(char[] arr);
static String valueOf(char[] arr, int offset, int length);
通过类名调用的静态方法,实际执行的是String(char[] arr, int offset, int length);
char[] toCharArray();
返回当前字符串对应的字符数组
char[] arr = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'};
String str1 = new String(arr);
System.out.println(str1);
String str2 = new String(arr, 2, 5);
System.out.println(str2);
String str3 = String.valueOf(arr);
System.out.println(str3);
String str4 = String.valueOf(arr, 2, 5);
System.out.println(str4);
char[] charArray = "这个字符串会变成一个字符数组".toCharArray();
System.out.println(Arrays.toString(charArray));
首先定义了一个字符数组
直接new String创建一个字符串对象
str2 输出的是 从编号2开始的五个字符
Str3 输出的是str1
str4 输出的是一个数组样式的
4.其他方法
String replace(char oldChar, char newChar)
替换,替换不会修改原始的字符串,会创建一个新字符串返回,并且替换效果是所有的对应 的oldChar全部替换成newChar
String[] split(String regex) 按照指定的字符串切割当前字符串 [00:00:15]XXXXXXX
切割的返回值是数组
String substring(int beginIndex) 从指定位置开始,截取子字符串,到字符串末尾
String substring(int beginIndex, int endIndex)
从指定位置开始beginIndex,到endIndex结束,要头不要尾
String toUpperCase() 转大写 字符串小写转大写
String toLowerCase() 转小写 字符串大写转小写
String trim() 去除空格 去除字符串两边的无用空格
IO流
1.基本介绍
I
input 输入流
read 读取数据
O
output 输出流
write 写入数据
2.IO流基类
InputStream
输入流基类
read
OutputStream
输出流基类
write
3.IO流的分类
按流向分:输入输出
按文件操作处理单元分类:字节流和字符流
FileInputStream
文件操作输入字节流
FileOutputStream
文件操作输出字节流
FileReader 文件操作输入字符流
FileWriter 文件操作输出字符流
4.文件操作输入字符流 FileInputStream
构造方法:(为对象创建文件操作输入字符流)
FileInputStream(File file);
这里是根据提供的File类对象创建对应的文件操作输入字节流。
FileInputStream(String pathName);
这里是根据提供的String类型文件路径,创建对应的文件操作输入字节流。 都会抛出异常:
FileNotFoundException 文件未找到异常。
成员方法:
int read();
从文件中读取一个字节数据返回到方法外。
虽然返回值是一个int类型,但是在整个int类型当中存储的数据是一个byte类型,有
且只有低8位数据有效
int read(byte[] buf); 读取文件的内容是存储在byte类型数组中,返回值是读取到的字节个数
int read(byte[] buf, int offset, int count); 读取文件的内容是存储在byte类型数组中,要求从byte数组offset位置开始,到 count长度结束,返回值是读取到的字节个数
以上三个方法如果读取到文件末尾,返回值都是 -1 EOF End Of File 而且以上方法都要异常抛出
IOException IO异常
对比之下,在使用FileInputStream来read数据时,尽量使用数组返回,速度快。(缓冲)
5.文件操作输出字节流(FileOutputStream)
构造方法:
FileOutputStream(File file);
根据File类对象创建对应的文件输出字节流对象
FileOutputStream(String pathName);
根据String类型文件路径创建对应的文件输出字节流对象
以上两个构造方法,创建的FileOutputStream是删除写/清空写操作,会将原文件中的内容全部删除之后,写入数据。
FileOutputStream(File file, boolean append);
根据File类对象创建对应的文件输出字节流对象。创建对象时给予append参数为
true,表示追加写。
FileOutputStream(String pathName, boolean append);
根据String类型文件路径创建对应的文件输出字节流对象,创建对象时给予append参
数为true,
表示追加写。
FileOutputStream构造方法是拥有创建文件的内容,如果文件存在,不创建,文件不存在且路径正确,创建对应文件。否则抛出异常FileNotFoundException
成员方法:
void write(int b); 写入一个字节数据到当前文件中,参数是int类型,但是有且只会操作对应的低八位数 据 void
write(byte[] buf); 写入字节数组中的内容到文件中 void write(byte[] buf, int
offset, int length); 写入字节数组中的内容到文件中,从指定的offset开始,到指定长度length
fileOutputStream = new FileOutputStream(file);
// 4. 准备byte类型数组
byte[] bytes = "武汉加油!中国加油!".getBytes();
byte[] arr = {65, 66, 67, 68, 69, 70, 71};
fileOutputStream.write(bytes);
fileOutputStream.write(arr, 2, 3);
创建一个数组,数组存放好元素,之后直接把整个数组写进这个文件。
字符流字符流 = 字节流 + 解码过程
字节组合操作 ==> 对应当前环境编码集的一个字符
如果字符找不到,该数据无效,需要被删除。
1.文件操作输入字符流 FileReader
构造方法:
FileReader(File file)
根据File类对象创建对应的FileReader字符流输入对象
FileReader(String pathName)
根据String类型文件路径创建对应的FileReader字符流输入对象
如果文件不存在,抛出异常FileNotFoundException
成员方法:
int read();
读取文件中的一个字符数据,通过返回值返回,返回值类型是int类型,但是在int类
型中有且只有低16位数据有效
int read(char[] arr);
读取文件中的数据保存到字符数组中,返回值类型是读取到的字符个数
int read(char[] arr, int off, int len);
读取文件中的数据保存到字符数组中,要求从数组中下标offset开始,到len结束,返
回值类型是读取到的字符个数
以上方法,如果读取到文件默认,返回值为-1 EOF End Of File
如果读取操作工作中,出现问题,抛出异常IOException