解决Java基础测试题

Java基础选拔题(1)

1、素数问题:素数是除了1和本身没有其它因子的自然数。

(1)输出全部2位素数。

(2)判断20034534543是不是素数;
如果是合数,那么进行分解。合数分解格式:15 = 3 * 5

代码:

public class number1 {
    public static void main(String[] args) {
        System.out.println("全部素数有:");
        out:for(int i=2;i<100;i++){
            for(int j=2;j<i;j++){
                if(i%j==0){
                   continue out;
                }
            }
            System.out.print(i+",");
        }
        System.out.println();

        long k=200345345343L;
        for(long i = 2; i<k/2; i++){
            if (k%i==0){
                long t=k/i;
                System.out.println(k+"="+i+"*"+t);
            }
        }

    }
}

2、填充国际象棋盘:国际象棋盘中,第1 格放1 粒米,第2 格放2 粒米,第3格放4 粒米,第4 格放8 粒米,第5 格放16粒米,……问:64个格子总共可以放多少粒米?

输出格式:
1: 1

2: 2

3: 4

4: 8

5: 16

6: 32

……
64: 9223372036854775808

sum = 18446744073709551615
代码:

public class number2_1 {
    public static void main(String[] args) {
        long a=System.currentTimeMillis(); // 获取开始时间

        String coun = "1";
        String sum = "0";

        for (int i = 1; i <=64; i++) {
            System.out.println(i+":"+coun);

            BigInteger big = new BigInteger(coun);
            BigInteger max = new BigInteger(sum);

            sum = big.add(max).toString();
            coun = big.add(big).toString();
        }
        System.out.println("sum="+sum);

        long b = System.currentTimeMillis(); // 获取结束时间
        System.out.println("所耗时间是:"+(b-a)+"ms");

    }
}

3、文件复制:将d:\windows目录下的全部exe文件拷贝到E:\test目录里。
代码:

public class number3 {
    //文件复制将D盘dos目录下的所有exe文件拷贝到E盘test目录下

    public static void main(String[] args) throws IOException {
        String fu="D:\\测试文件夹";
        String cun ="E:\\测试文件夹\\";
        File file=new File(fu);
        File[] fulist=file.listFiles(); //获取到列表

        for(File i: fulist){
            String name=i.getName();
            if(! i.isDirectory()){
                if((name).startsWith("txt", name.length()-3)){

                    name=i.getName();
                    FileOutputStream out =new FileOutputStream(cun+name);
                    FileInputStream in =new FileInputStream(i);

                    byte[] Buffer =new byte[1024];// 创建缓冲区
                    int len=in.read(Buffer); // 首先写入一次

                    while (len !=-1){
                        out.write(Buffer,0,len);
                        len=in.read(Buffer);
                    }
                    out.flush();
                    out.close();
                    in.close();
                }
            }


        }

    }
}

4、文件统计:统计一篇英文文章里每个单词的个数。

代码:

public class number4 {
    public static void main(String[] args) throws IOException {
        String url="D:\\测试文件夹\\t.txt";
        FileReader in=new FileReader(url);
        char[] str =new char[1024];

        int len=in.read(str);
        String st="";

        while(len!=-1){
            st+=new String(str);
            len=in.read(str);
        }
        String[] list=st.split(" ");

        for(String i:list){
            int count=0;
            for(String j:list){
                if (i.equals(j)){
                    count+=1;
                }
            }
            System.out.println(i+":"+count);

        }


    }

}

5、去重操作:去掉文件中的重复IP地址,统计不同IP地址的个数。
文件ips.txt内容:
192.168.234.21
192.168.234.22
192.168.234.21
192.168.234.21

运行结果如下:

public class number5 {
    public static void main(String[] args) throws IOException {
        String url="D:\\测试文件夹\\ip.txt";
        BufferedReader in = new BufferedReader(new FileReader(url));
        String s="";
        HashSet<String> text=new HashSet<String>();
        while(( s= in.readLine()) != null) {
            text.add(s);
        }
        
        System.out.println(text.size());
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章