在项目中经常遇到需要根据不同的条件判断输出结果的情况,通常想到的就是if/else if/else结构了,再进一步就会想到switch,特别是种类比较多的时候,但是switch有个特别不好的地方,就是不能用String,1.7以下的JDK,switch只能传int,char,和enum三种类型,根本不支持String。String转成int,char的可能性比较小——除非是数字、字符,所以还是想着将String弄成枚举比较靠谱。
这里以”文件下载功能模块中的根据文件类型返回不同的header类型“为例。
1、建一个枚举类,规定所有的文件类型,并提供方法获取类型:
public enum FileType{ //规定文件类型 DOC,DOCX,PDF,TXT,XLS,XLSX,PPT,PPTX,BMP,GIF,IEF,JPEG, JPG,PNG,TIFF,TIF; //提供方法用来获取文件类型 public static FileType getFileType(String fileType){ return valueOf(fileType.toUpperCase()); } }
2、定义各种文件类型对应的content-type:
/** * 该方法用来获取下载文件的文件类型 * @param fileName:文件名称,文件名称+.+后缀名 * */ public static String getContentType(String fileName){ String contentType=""; //校验 if(fileName==null || fileName.trim().length()<=0 || fileName.lastIndexOf(".")<=0) return ""; fileName = fileName.trim(); String extName = fileName.substring(fileName.lastIndexOf(".")+1).toUpperCase(); //System.out.println("后缀为:"+extName); switch(FileType.getFileType(extName)){ case DOC:contentType="application/msword";break; case DOCX:contentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document";break; case PDF:contentType="application/pdf";break; case TXT:contentType="text/html";break; case XLS:contentType="application/vnd.ms-excel";break; case XLSX:contentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";break; case PPT:contentType="application/vnd.ms-powerpoint";break; case PPTX:contentType="application/vnd.openxmlformats-officedocument.presentationml.presentation";break; case BMP:contentType="image/bmp";break; case GIF:contentType="image/gif";break; case IEF:contentType="image/ief";break; case JPEG:contentType="image/jpeg";break; case JPG:contentType="image/jpeg";break; case PNG:contentType="image/png";break; case TIFF:contentType="image/tiff";break; case TIF:contentType="image/tif";break; } return contentType; }
3、main方法进行测试:
public static void main(String[] args){ String fileName="1001.jpg"; String contentType = getContentType(fileName); System.out.println("content-type:"+contentType); }
相关推荐
在java switch中使用String作为分支条件
java的String字符串总有补0,绝对好用
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos); 其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子...
在JAVA中拼接两个字符串的最简便的方式就是使用操作符”+”了。如果你用”+”来连接固定长度的字符串,可能性能上会稍受影响,但是如果你是在 循环中来”+”多个串的话,性能将指数倍的下降。假设有一个字符串,我们...
使用Java的String类操作字符串和子串。 实验内容: 1.写一个程序提示用户键入某一货币数量(以分为单位),该程序应计算出如何用最少量的1元,50分,10分和1分硬币得到该数目。如195分最少可以用一个1元硬币,1个50分...
java实现对象转化为get请求的param参数String字符串,本人自测非常好用,一般对象可以转化键值对的格式,但是最近项目需要自己手动拼接对象作为get请求的参数,百度了一堆还不如自己写一个,欢迎各位使用,有什么...
创建String字符串 目录 课程导入 掌握String字符串对象的创建 掌握字符串对象的输入与输出 一般程序需要处理大量文本数据Java语言的文本数据被保存为字符或字符串类型。 若干个字符在计算机里面如何存储? 如何引用...
java工具类去掉字符串String中的.点。android开发java程序员常用工具类。博文介绍:http://blog.csdn.net/qq_21376985/article/details/51482313
这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...
主要介绍了Java中字符串去重的特性,是Java8中引入的一个新特性,至于是否真的用起来顺手就见仁见智了...需要的朋友可以参考下
Java设置String字符串编码方法详解
java JAVA数组与字符串,编写图形界面的程序,接收用户输入的一个字符串和一个字符,将字符串中出现的所有该字符删除,打印新生成的字符串。 String 类或StringBuffer类 deleteCharAt方法
JDK1.5中,String类新增了一个很有用的静态方法,这些方法有助于开发人员对字符串的各类操作
java中String类型转换方法.pdf
在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[] arrays = new String[] { gyu, sdf, zf, 大同, 收到, 地方, 三等分, 的人, 反对高铁, 泛代数, 上的投入...
java字符串转String数组简单实例,简单但很实用
基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用...
java字符串处理取出括号内的字符串 都是我自己试过可以用的j
Base64转String字符串,支持将Base64转化为String字符串
将string类型的xml转为JSON字符串,利用JSONObject处理JSON串