1.char 型无法表示出null属性因为char型是基本数据类型不是类,所以当要表示一个空的值需要使用String。
应用场景:当使用
String a="2314251";
char b=' ';
a=a.replace('2',b);
String 型的a.replace(oldChar, newChar)方法只能够传入char型的值,当想要将a中的2去掉变成a=“31451”时就会出现问题,此时的我们可以使用另一个方法。a.replaceAll(regex, replacement),此方法replace方法的区别在于传入的参数不同,该方法传入两个字符串,而字符串可以表示出空(“”),进行替换。
String a="2314251";
a=a.replaceAll("2","");
2.java File 类中的renameTo方法: new File("a.txt").renameTo(new File("b.txt"));
API 介绍:重命名这个抽象路径名表示的文件。此方法的行为的许多方面本质上是依赖于平台的:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,也可能不具有原子性,如果目标抽象路径名的文件已经存在,则重命名操作可能无法成功。应该始终检查返回值,以确保重命名操作成功。
该方法主要实现了一个将文件转移到磁盘的另一个地址的功能实现,例如将桌面的一个文件夹中的图片转移到另一个文件夹。
/**将修改好的验证码移动到指定的文件夹里
@param olddir 修改好的图片路径
@param newdir 需要转到的路径
*/
static void moves (String olddir , String newdir) throws IOException{
File file = new File(olddir);
File[] file1 = file.listFiles();
int count = 1 ;
for (int i = 0; i < file1.length; i++) {
if (file1 [i].getName().length() == 8 && !file1 [i].getName().substring(0, 4).matches("[0-9]+")) {
file1 [i].renameTo(new File( newdir + "//" + file1[i].getName()));
}
else {
count ++;
}
}
}
然而个在使用该方法有时会发现部分图片没有转移成功原因如下:
该方法存在一些限制;
第一:源文件不存在
第二:目标文件存在
第三:都不存在
这三种情况都会文件转移不成功。
3.JDK1.8新增API boolean java.util.Collection.removeIf(Predicate<? super String> filter)
此方法在平时进行集合操作时非常实用,主要作用是用于删除符合过滤器filter的元素
标准格式是
list.removeIf(s ->{ 一个具有返回值为boolean的方法})
举例:
package com.jdkapi;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Demo1 {
public static void main(String[] args) throws IOException {
// 创建一个list并向其中放入测试数据
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.removeIf(s -> filter(s));
for (String string : list) {
System.out.println(string);
}
}
public static boolean filter(String str) {
if ("a".equals(str)) {
return false;
}
return true;
}
}
也可以直接使用已有的方法来进行使用例如
list.removeIf(s ->s.contains("a"));之类的已有api来进行使用
注:removeIf()中方法不可以抛异常,可以使用try{}catch{}。
package com.jdkapi;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Demo1 {
public static void main(String[] args) throws IOException {
// 创建一个list并向其中放入测试数据
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.removeIf(s -> filter(s));
for (String string : list) {
System.out.println(string);
}
}
public static boolean filter(String str) {
try {
//从一个txt文件夹中读取数据
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
StringBuffer sb = new StringBuffer();
String str1 ;
while((str1 = br.readLine())!=null) {
sb.append(str1 + " ");
}
br.close();
String [] strs =sb.toString().split(" ");
for (int i = 0; i < strs.length; i++) {
if (str.equals(strs [i])) {
return true;
}
}
return false;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
}