两个四位数相加,得到的和数中与两个加数中没有重复数字 使用加数的相接成的字符串组委正则将和数中相同部分替换为空,判断长度检查是否有重复
//通过两个加数拼成的字符串组成的正则去和和数进行替换,如果有重复则长度会减少 public static boolean regIsNotRepeat(long n1,long n2){ //求两数字和并转换为字符串 String s = String.valueOf(n2+n1); //n1+n2组成的字符组成正则的规则 if(s.replaceAll("(["+n1+n2+"])", "").length()-s.length()==0) return true; return false; }统计读取文件中的不重复单词数,单词以空格隔开 这里使用java.util中的set作为辅助,set中的元素是不可重复的,将读取的字符串处理后add到set里面,最终set的大小即为不重复单词总数
public static void countWords(File f) throws IOException{ try { Set set = new HashSet(); String s = ""; String[] s2 = null; BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f))); while(!(s=br.readLine()).equals("#")){ //用空格拆分字符串 s2 = s.split(" "); for(int i=0,size=s2.length;i<size;i++){ //将单词转换为小写后放入set set.add(s2[i].toLowerCase()); } } //set的大小即为不重复单词数量 System.out.println(set.size()); } catch (FileNotFoundException e) { e.printStackTrace(); } }main函数中
File f = new File("src/week/word.txt"); countWords(f);感觉正则替换对字符串的操作真的是非常的方便啊。。。。