两个四位数相加,得到的和数中与两个加数中没有重复数字
使用加数的相接成的字符串组委正则将和数中相同部分替换为空,判断长度检查是否有重复
//通过两个加数拼成的字符串组成的正则去和和数进行替换,如果有重复则长度会减少
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);
感觉正则替换对字符串的操作真的是非常的方便啊。。。。