优化这段代码 string extension = ".pdf";//扩展名 “.aspx” int transcodeType = 0; if (extension.Contains(".ppt,.pptx,.pdf,.doc,.docx")) { transcodeType = 1; }else if (extension.Contains(".mp4,.3pg,.mpeg,.avi,.flv,.wmv,.rm,.h264")) { transcodeType = 2; }else if (extension.Contains(".mp3,.wav,.wma,.aac,.flac,opus")) { transcodeType = 2; }

时间: 2023-05-31 22:07:15 浏览: 25
要优化这段代码,可以将多个扩展名放进同一个 Contains 方法中,以简化代码。同时,可以使用 switch 语句代替多个 if-else 分支结构,使代码更易读更高效。 优化后的代码如下: string extension = ".pdf"; int transcodeType = 0; switch (extension) { case ".ppt": case ".pptx": case ".pdf": case ".doc": case ".docx": transcodeType = 1; break; case ".mp4": case ".3pg": case ".mpeg": case ".avi": case ".flv": case ".wmv": case ".rm": case ".h264": transcodeType = 2; break; case ".mp3": case ".wav": case ".wma": case ".aac": case ".flac": case "opus": transcodeType = 3; break; default: //处理无法识别的扩展名 break; }
相关问题

优化这段代码Map<String, Object> map1 = result.get(0);

为了优化这段代码,您可以进行以下步骤: 1. 使用泛型来明确map1中的键和值的类型。 2. 避免使用get()方法多次访问同一个键,可以将它存储在临时变量中以提高代码的可读性和性能。 3. 确保在访问map1之前,检查 result 是否为空,如果是,则需要进行相应错误处理。 下面是一个示例代码段,演示如何应用这些优化: if (result != null && !result.isEmpty()) { // 使用泛型来明确map1中的键和值的类型 Map<String, Object> map1 = result.get(0); // 避免使用get()方法多次访问同一个键 Object value = map1.get("some_key"); // 对value进行操作 // ... } else { // 进行错误处理 // ... }

java计算t=1 1/2 1/3 .… 1/n

以下是 Java 代码,用于计算 t=1 1/2 1/3 ... 1/n 的值: ```java public class Main { public static void main(String[] args) { int n = 10; // 请将 n 替换为您需要的值 double t = 0; for (int i = 1; i <= n; i++) { t += 1.0 / i; } System.out.println("t=" + t); } } ``` 请将代码中的 n 替换为您需要的值。然后运行代码,它将计算并输出 t 的值。

相关推荐

这段代码的优化可以从以下几个方面入手: 1. 使用 LINQ 语句来优化 foreach 循环 2. 使用 try catch 块来处理插入数据库时的异常情况 3. 将重复的代码封装成方法来优化代码的复用性 经过优化后的代码如下所示: public void StopShooting() { // 使用 LINQ 语句计算总成绩、脱靶数、击中数、平均成绩、分数等信息 var scoreList = allScore.Select(item => new Score { id = item.Key.ToString(), createTime = item.Value[0].startTime, totalScore = item.Value.Sum(x => x.hitNum).ToString(), hitNum = item.Value.Count(x => x.hitFlag == 1).ToString(), missNum = item.Value.Count(x => x.hitFlag == 0).ToString(), guns = item.Value.Count.ToString(), turnType = item.Value[0].shootingMode.ToString(), turnTheme = item.Value[0].baJiType, playerName = PersonDao.Instance.FindNameByID(item.Key.ToString()).namee, workPlace = item.Value[0].workPlace, grading = GetGrading(item.Value.Average(x => x.hitNum)) }).ToList(); // 将数据添加到数据库中,并处理异常情况 try { ScoreInfoSqlMgr.Instance.Add(scoreList); } catch (Exception ex) { Console.WriteLine("插入数据库失败:" + ex.Message); } // 停止射击,清空所有成绩,存储顺序,不再接受射击成绩 allScore.Clear(); dicScore.Clear(); isRecive = false; } // 获取射击分数等级 public string GetGrading(double score) { if (score >= 90) return "优秀"; else if (score >= 80) return "良好"; else if (score >= 60) return "及格"; else return "不及格"; } // 定义成绩类 public class Score { public string id { get; set; } public DateTime createTime { get; set; } public string totalScore { get; set; } public string hitNum { get; set; } public string missNum { get; set; } public string grading { get; set; } public string guns { get; set; } public string turnType { get; set; } public string turnTheme { get; set; } public string playerName { get; set; } public string workPlace { get; set; } }
这段代码可以进行以下优化: 1. 检查循环条件是否正确:在 for 循环中,i 的增量应该是 i++ 而不是 i。这个问题可能是笔误导致的,但需要修正。 2. 提取变量:可以将每个人的成绩列表 item.Value 提取到变量中,以提高代码的可读性。 3. 避免重复计算:在循环中,计算 totalScore、missNum 和 hitNum 都是基于同一个成绩项,因此可以将这些计算提取到循环外部,以避免重复计算。 4. 使用 LINQ:可以利用 LINQ 对成绩列表进行统计和筛选,以减少代码量并提高可读性。 以下是优化后的代码: public void StopShooting() { foreach (var scores in allScore.Values) { // 提取变量 var item = scores[0]; var shootingMode = item.shootingMode.ToString(); var baJiType = item.baJiType; var workPlace = item.workPlace; var playerName = PersonDao.Instance.FindNameByID(item.Key.ToString()).namee; // 使用 LINQ 进行统计和筛选 var totalScore = scores.Sum(s => s.hitFlag); var missNum = scores.Count(s => s.hitFlag == 0); var hitNum = scores.Count(s => s.hitFlag == 1); var guns = scores.Count; var averageScore = (float)totalScore / guns; var grading = GetGrading(averageScore); // 每个人射击总的数据 var score = new Score() { id = item.Key.ToString(), createTime = item.startTime, totalScore = totalScore.ToString(), hitNum = hitNum.ToString(), missNum = missNum.ToString(), grading = grading, guns = guns.ToString(), turnType = shootingMode, turnTheme = baJiType, playerName = playerName, workPlace = workPlace }; // 将数据添加到数据库中 ScoreInfoSqlMgr.Instance.Add(score); } // 停止射击,清空数据 allScore.Clear(); dicScore.Clear(); isRecive = false; }
这是一段求解最长无重复子串长度的代码,下面对其进行讲解: class Solution { public: int lengthOfLongestSubstring(string s) { if(s.size() == 0) return 0; // 如果字符串为空,返回0 首先判断给定的字符串s是否为空,如果为空,那么最长无重复子串的长度为0。 int maxLen = 1; // 最长无重复子串的长度最小为1 int start = 0; // 子串的起始位置 int end = 0; // 子串的结束位置 int n = s.size(); // 字符串s的长度 unordered_set<char> hash; // 用一个哈希表记录出现过的字符 while(end < n){ if(hash.find(s[end]) == hash.end()){ // 如果当前字符不在哈希表中,将其加入哈希表 hash.insert(s[end]); end++; // 将子串的结束位置向右移动 maxLen = max(maxLen, end - start); // 更新最长无重复子串的长度 }else{ // 如果当前字符在哈希表中,就将子串的起始位置向右移动,直到子串中不包含当前字符为止 hash.erase(s[start]); start++; } } return maxLen; // 返回最长无重复子串的长度 } }; 接下来,定义三个变量maxLen、start和end,分别表示当前最长无重复子串的长度、子串的起始位置和子串的结束位置。同时,定义一个哈希表hash,用于记录已经出现过的字符。 接着,用while循环遍历整个字符串s,如果当前字符不在哈希表中,就将其加入哈希表,并将子串的结束位置向右移动。如果当前字符在哈希表中,就将子串的起始位置向右移动,直到子串中不包含当前字符为止。在子串的每一个位置,都要更新一下最长无重复子串的长度maxLen。 最后,返回最长无重复子串的长度maxLen。

最新推荐

Java中实现String.padLeft和String.padRight的示例

本篇文章主要介绍了Java中实现String.padLeft和String.padRight,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)

主要介绍了谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)以及JSON的parse()和stringfy()方法详解,感兴趣的朋友一起看看吧

js中字符替换函数String.replace()使用技巧

stringObject.replace(regexp/substr,replacement)参数 描述 regexp/substr 必需。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被...

浅谈stringstream 的.str()正确用法和清空操作

下面小编就为大家带来一篇浅谈stringstream 的.str()正确用法和清空操作。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Java中Object.equals和String.equals的区别详解

主要给大家介绍了Java中Object.equals和String.equals的区别,文中通过一个小示例让大家轻松的明白这两者的区别,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

代码随想录最新第三版-最强八股文

这份PDF就是最强⼋股⽂! 1. C++ C++基础、C++ STL、C++泛型编程、C++11新特性、《Effective STL》 2. Java Java基础、Java内存模型、Java面向对象、Java集合体系、接口、Lambda表达式、类加载机制、内部类、代理类、Java并发、JVM、Java后端编译、Spring 3. Go defer底层原理、goroutine、select实现机制 4. 算法学习 数组、链表、回溯算法、贪心算法、动态规划、二叉树、排序算法、数据结构 5. 计算机基础 操作系统、数据库、计算机网络、设计模式、Linux、计算机系统 6. 前端学习 浏览器、JavaScript、CSS、HTML、React、VUE 7. 面经分享 字节、美团Java面、百度、京东、暑期实习...... 8. 编程常识 9. 问答精华 10.总结与经验分享 ......

事件摄像机的异步事件处理方法及快速目标识别

934}{基于图的异步事件处理的快速目标识别Yijin Li,Han Zhou,Bangbang Yang,Ye Zhang,Zhaopeng Cui,Hujun Bao,GuofengZhang*浙江大学CAD CG国家重点实验室†摘要与传统摄像机不同,事件摄像机捕获异步事件流,其中每个事件编码像素位置、触发时间和亮度变化的极性。在本文中,我们介绍了一种新的基于图的框架事件摄像机,即SlideGCN。与最近一些使用事件组作为输入的基于图的方法不同,我们的方法可以有效地逐个事件处理数据,解锁事件数据的低延迟特性,同时仍然在内部保持图的结构。为了快速构建图,我们开发了一个半径搜索算法,该算法更好地利用了事件云的部分正则结构,而不是基于k-d树的通用方法。实验表明,我们的方法降低了计算复杂度高达100倍,相对于当前的基于图的方法,同时保持最先进的性能上的对象识别。此外,我们验证了我们的方�

下半年软件开发工作计划应该分哪几个模块

通常来说,软件开发工作可以分为以下几个模块: 1. 需求分析:确定软件的功能、特性和用户需求,以及开发的目标和约束条件。 2. 设计阶段:根据需求分析的结果,制定软件的架构、模块和接口设计,确定开发所需的技术和工具。 3. 编码实现:根据设计文档和开发计划,实现软件的各项功能和模块,编写测试用例和文档。 4. 测试阶段:对软件进行各种测试,包括单元测试、集成测试、功能测试、性能测试、安全测试等,确保软件的质量和稳定性。 5. 发布和部署:将软件打包发布,并进行部署和安装,确保用户可以方便地使用软件。 6. 维护和更新:对软件进行维护和更新,修复漏洞和Bug,添加新的特性和功能,保证

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

开集域自适应方法及其在靶点发现中的应用

9322基于开集域自适应的新靶点发现Taotao Jing< $,Hongfu LiuXiang,and Zhengming Ding<$†美国杜兰大学计算机科学系‡美国布兰代斯大学Michtom计算机科学学院网址:tjing@tulane.edu,hongfuliu@brandeis.edu,网址:www.example.com,zding1@tulane.edu摘要开集域自适应算法(OSDA)认为目标域包含了在外部源域中未观察到的新类别的样本不幸的是,现有的OSDA方法总是忽略了看不见的类别的信息的需求,并简单地将它们识别为“未知”集合而没有进一步的这促使我们通过探索底层结构和恢复其不可解释的语义属性来更具体地理解未知类别。在本文中,我们提出了一种新的框架,以准确地识别目标领域中的可见类别,并有效地恢复未见过的类别的语义属性具体而言,结构保持部分对齐开发,通过域不变的特征学习识别看到的基于视觉图的属性传播是为了通过视觉语义映射将可见属�