应11楼马友要求,分享我的两道面试代码题:
第一题:
import java.util.*;
public class Test {
/**1、有类似这样的字符串:“1.2,3.4,5.6,7.8,5.56,44.55“,
现需完成以下要求:
1)以逗号作为分隔符,分成一个String类型的数组,
数组中的每一个元素为“1.2”,“3.4”类似这样的字符串。
2)把数组中的每一个元素以.作为分割,把.号左边的元素作为key,
把.号右边的元素作为value封装到Map中,map中的key和value都是Object类型。
3)把map中的key封装到Set中,并且把set中的元素输出。
4)把map中的value封装到Collection中,把collection中的元素输出。
* @param args
* 思路:
* 1、split方法分割,转换为字符串数组;
* 2、再次分割,重新定一个两个字符数组,用于存储key和Value;
* 3、建立map集合,遍历key和value数组,将对应键和值存入。
* 4、调用keySet方法,取出相应的键,在调用get(key)方法取出相应的value;
* 5、建立一个ArryList集合存储取出的value,在遍历该集合输出。。
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//初始化字符串,用于保存切割后的字符
String[] strs = ( new String("1.2,3.4,5.6,7.8,5.56,44.55").split(","));
// for(int i=0;i<strs.length;i++)
// System.out.println(strs);
//用于存储键和值的数组
String[] temps = new String[]{};
int[] strsKey = new int[strs.length];
int[] strsValue = new int[strs.length];
//将键和值存入相应的数组中
for(int i=0;i<strs.length;i++)
{
temps = strs.split("\\.");
strsKey=Integer.parseInt(temps[0]);
strsValue=Integer.parseInt(temps[1]);
// System.out.println(strsKey);
// System.out.println(strsValue);
}
// System.out.println(Arrays.toString(temps));
//建立map集合
TreeMap tm = new TreeMap();
for(int j=0;j<strs.length;j++)
{
tm.put(strsKey[j],strsValue[j]);
}
//使用iterator方法取出map集合中的元素
Set keySet = tm.keySet();
Iterator it = keySet.iterator();
ArrayList al = new ArrayList();//用于存储取出的值
System.out.println("Set,取出键:");
while(it.hasNext())
{
int key = (int)it.next();
int value = (int)tm.get(key);
al.add(value);
System.out.println("键:"+key);
// System.out.println("值:"+value);
}
//输出值
System.out.println("Collection,取出值:");
for(int i=0;i<al.size();i++)
{
System.out.println("值:"+al.get(i));
}
}
}
第二题:
import java.io.*;
public class Test2 {
/**2、把一个指定文件夹中的文件的内容读取到控制台,
* 文件中的一行在控制台输出一行,如果文件是以doc结尾不读取。
* @param args
* 目的:读出文件,判断文件后缀,打印文件到控制台
* 思路:
* 1、关联指定文件夹。遍历文件夹。
* 2、获取当前遍历文件的名字,
* 如果以.doc结尾,则跳过;endsWith()
* 否则,读取文件中的内容,打印到控制台。
*
*/
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
PrintToCro("F:\\3");
}
public static void PrintToCro(String filePath)throws IOException
{
//遍历获取文件夹中内容
File[] files = new File(filePath).listFiles();
for(File file:files)
{
//获取当前文件的名字
String name = file.getName();
//判断文件是否以.doc结尾
if(name.endsWith(".doc"))
continue;
//输出文件
System.out.println(name);
}
}
}
|