Java测试题

第一题

需求如下:
已知用户购买的商品名称如下:
铅笔
本子
橡皮擦
铅笔
铅笔
本子
本子
本子
分析:
a.请使用一个集合(使用泛型)存储用户购买的上述商品名称
b.利用迭代器方式遍历出上述集合
c.利用HashMap统计出每件商品对应的购买数量
d.利用增强for循环遍历上述的HashMap

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class ShopList {
    public static <arrayList> void main(String[] args) {
        ArrayList<Shop> arrayList=new ArrayList<>();
        HashMap<Integer, Shop> map=new HashMap<>();
        arrayList.add(new Shop("铅笔"));
        arrayList.add(new Shop("本子"));
        arrayList.add(new Shop("橡皮擦"));
        arrayList.add(new Shop("铅笔"));
        arrayList.add(new Shop("铅笔"));
        arrayList.add(new Shop("本子"));
        arrayList.add(new Shop("本子"));
        arrayList.add(new Shop("本子"));
        int pencile=0;
        int book=0;
        int eraser=0;
        for (int j = 0; j <8 ; j++) {
            map.put(j,arrayList.get(j));
            if(map.get(j).toString().equals("铅笔")){
                    pencile++;
            }
            if(map.get(j).toString().equals("橡皮擦")){
                eraser++;
            }
            if(map.get(j).toString().equals("本子")){
                book++;
            }
            }
        System.out.println("铅笔有:"+pencile);
        System.out.println("橡皮擦有:"+eraser);
        System.out.println("本子有:"+book);
        map.put(1,arrayList.get(1));
        Iterator<Shop> iterator = arrayList.iterator();
        while (iterator.hasNext()){
            Shop shop = iterator.next();
            System.out.print(shop+" ");
        }
        System.out.println();
        Iterator<Map.Entry<Integer, Shop>> iterator1 = map.entrySet().iterator();
        while (iterator1.hasNext()){
            Map.Entry<Integer, Shop> next = iterator1.next();
            System.out.print(next+" ");
        }
    }
}

第二题

根据需求完成以下功能
a 已知在当前工程的根目录下有一个1.txt,2.txt中的内容为:(可以在1.txt中手动输入以下内容)
“abc”
“def”
“aaabaaa”
“aba”
“pop”
b.利用 字符数组,FileReader,FileWriter将1.txt拷贝到当前工程下的2.txt中,异常不需要处理,抛出即可(throws)
c.利用 BufferedReader和BufferedWriter将1.txt拷贝到当前工程下的3.txt中,并处理异常
d.打印出字符串中包含"a"字符串的原始字符串
e.统计出包含"a"的字符串的个数

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo01 {
    public static void main(String[] args) throws IOException {
        FileReader fr=new FileReader("1.txt");
        FileWriter fw=new FileWriter("2.txt");
        int len;
        while((len=fr.read())!=-1){
            fw.write(len);
        }
        fw.close();
        fr.close();
    }
}
import java.io.*;

public class Demo02 {
    public static void main(String[] args) {
        //c.利用 BufferedReader和BufferedWriter将1.txt
        // 拷贝到当前工程下的3.txt中,并处理异常
        try {
            BufferedReader br=new BufferedReader(new FileReader("1.txt"));
            BufferedWriter bw=new BufferedWriter(new FileWriter("3.txt"));
            int len;
            char [] bys=new char[1024];
            while ((len=br.read(bys))!=-1){
                bw.write(bys,0,len);
            }
            bw.close();
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

import java.io.*;

public class Demo03 {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new FileReader("1.txt"));
        String str;
        int a=0;
        while((str=br.readLine())!=null){
            if(str.contains("a")){
                System.out.println(str);
                a++;
            }
            }
        System.out.println("一共有"+a+"个");
        br.close();
        }
    }

第三题

编写一个工具类DateUtil,该类有两个方法,分别实现如下功能:(共10分)
1)用来实现字符串转换成Date (5分)
2)Date转换成字符串。(5分)
要求:面向对象方式实现,其他方式不得分
实现日期格式的字符串转换为java.util.Date类型。例如:“2017-10-20”转换为日期格式;
实现java.util.Date类型的值转换为字符串格式;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtil {
    public static void main(String[] args) throws ParseException {
        Date d=new Date();
        String s="2017年10月20日";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
        Date v=sdf.parse(s);
        System.out.println(v);
        String time=sdf.format(d);
        System.out.println(time);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值