此文章发布于70
个月前,部分信息可能已经过时
,请自行斟酌确认。
今天微酷确实又在这里踩坑了,真的好臭,花了1个多小时没写完一个上传处理逻辑。
问题描述
定义了一个字符串用于设定允许上传的文件类型:
String uploadType=".jpg|.jpeg|.png|.doc|.docx|.xls|.xlsx|.pdf";
结果判断上传文件的扩展名是否允许时遇到坑了。
下面的代码是错的,是错的,是错的!!!
Arrays.binarySearch(uploadType.split("\\|")), ".jpg");
得到的结果竟然是:-6
不想多吐槽,还是那个字,Java 不如 C#
好用。
解决方案
方法一:
result = Arrays.asList(arr).contains(str);
方法二:
for (String s : arr) {
if (s.equals(str)){
return true;
}
}
方法三:
Set<String> set=new HashSet<String>(Arrays.asList(arr));
return set.contains(str);
方法四:
ArrayUtils.contains(arr,str);
如果非要用
String[] arr = ".jpg|.jpeg|.png|.doc|.docx|.xls|.xlsx|.pdf".split("\\|");
Arrays.sort(arr);
int i = Arrays.binarySearch(arr, ".jpg");
System.out.println(i); // 输出3