java常见题目day4

两个四位数相加,得到的和数中与两个加数中没有重复数字
使用加数的相接成的字符串组委正则将和数中相同部分替换为空,判断长度检查是否有重复

 //通过两个加数拼成的字符串组成的正则去和和数进行替换,如果有重复则长度会减少
        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);

感觉正则替换对字符串的操作真的是非常的方便啊。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值