java基础的小知识

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;

	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值