if-else的优化举例
共有部分:
String bookFrom = null;
String sheetFrom = null;
String bookTo = null;
String sheetTo = null;
String matchColumnFrom = null;
String updateValueFrom = null;
String matchColumnTo = null;
String updateValueTo = null; String[] splitTwoSheets = parameters.split(";");
boolean flag1 = splitTwoSheets[0].contains("\"");
boolean flag2 = splitTwoSheets[1].contains("\"");
优化前:
if(flag1 && flag2){
int lastIndexOfQuotes0 = splitTwoSheets[0].lastIndexOf("\"");
String Wb1AndSheet1 = splitTwoSheets[0].substring(0,lastIndexOfQuotes0).replaceAll("\"","");
String[] splitWb1AndSheet1 = Wb1AndSheet1.split("->");
separatedParameters[1] = splitWb1AndSheet1[0].trim();
separatedParameters[2] = splitWb1AndSheet1[1].trim();
int length0 = splitTwoSheets[0].length();
String stringColumns0 = splitTwoSheets[0].substring(lastIndexOfQuotes0,length0).replaceAll("\"","");
stringColumns0 = deleteExtraBlanks(stringColumns0);
String[] splitColumns0 = stringColumns0.trim().split(" ");
separatedParameters[5] = splitColumns0[0];
separatedParameters[6] = splitColumns0[1];
int lastIndexOfQuotes1 = splitTwoSheets[1].lastIndexOf("\"");
String Wb2AndSheet2 = splitTwoSheets[1].substring(0,lastIndexOfQuotes1).replaceAll("\"","");
String[] splitWb2AndSheet2 = Wb2AndSheet2.split("->");
separatedParameters[3] = splitWb2AndSheet2[0].trim();
separatedParameters[4] = splitWb2AndSheet2[1].trim();
int length1 = splitTwoSheets[1].length();
String stringColumns1 = splitTwoSheets[1].substring(lastIndexOfQuotes1,length1).replaceAll("\"","");
stringColumns1 = deleteExtraBlanks(stringColumns1);
String[] splitColumns1 = stringColumns1.trim().split(" ");
separatedParameters[7] = splitColumns1[0];
separatedParameters[8] = splitColumns1[1]; } else if(flag1 && !flag2){
int lastIndexOfQuotes0 = splitTwoSheets[0].lastIndexOf("\"");
String Wb1AndSheet1 = splitTwoSheets[0].substring(0,lastIndexOfQuotes0).replaceAll("\"","");
String[] splitWb1AndSheet1 = Wb1AndSheet1.split("->");
separatedParameters[1] = splitWb1AndSheet1[0].trim();
separatedParameters[2] = splitWb1AndSheet1[1].trim();
int length0 = splitTwoSheets[0].length();
String stringColumns0 = splitTwoSheets[0].substring(lastIndexOfQuotes0,length0).replaceAll("\"","");
stringColumns0 = deleteExtraBlanks(stringColumns0);
String[] splitColumns0 = stringColumns0.trim().split(" ");
separatedParameters[5] = splitColumns0[0];
separatedParameters[6] = splitColumns0[1]; separatedParameters[3] = "";
splitTwoSheets[1] = deleteExtraBlanks(splitTwoSheets[1]);
String[] splitSheetAndColumns = splitTwoSheets[1].trim().split(" ");
separatedParameters[4] = splitSheetAndColumns[0];
separatedParameters[7] = splitSheetAndColumns[1];
separatedParameters[8] = splitSheetAndColumns[2]; } else if(!flag1 && flag2){
int lastIndexOfQuotes1 = splitTwoSheets[1].lastIndexOf("\"");
String Wb2AndSheet2 = splitTwoSheets[1].substring(0,lastIndexOfQuotes1).replaceAll("\"","");
String[] splitWb2AndSheet2 = Wb2AndSheet2.split("->");
separatedParameters[3] = splitWb2AndSheet2[0].trim();
separatedParameters[4] = splitWb2AndSheet2[1].trim();
int length1 = splitTwoSheets[1].length();
String stringColumns1 = splitTwoSheets[1].substring(lastIndexOfQuotes1,length1).replaceAll("\"","");
stringColumns1 = deleteExtraBlanks(stringColumns1);
String[] splitColumns1 = stringColumns1.trim().split(" ");
separatedParameters[7] = splitColumns1[0];
separatedParameters[8] = splitColumns1[1]; separatedParameters[1] = "";
splitTwoSheets[0] = deleteExtraBlanks(splitTwoSheets[0]);
String[] splitSheetAndColumns = splitTwoSheets[0].trim().split(" ");
separatedParameters[2] = splitSheetAndColumns[0];
separatedParameters[5] = splitSheetAndColumns[1];
separatedParameters[6] = splitSheetAndColumns[2]; } else{
separatedParameters[1] = "";
splitTwoSheets[0] = deleteExtraBlanks(splitTwoSheets[0]);
String[] splitSheetAndColumns0 = splitTwoSheets[0].trim().split(" ");
separatedParameters[2] = splitSheetAndColumns0[0];
separatedParameters[5] = splitSheetAndColumns0[1];
separatedParameters[6] = splitSheetAndColumns0[2]; separatedParameters[3] = "";
splitTwoSheets[1] = deleteExtraBlanks(splitTwoSheets[1]);
String[] splitSheetAndColumns1 = splitTwoSheets[1].trim().split(" ");
separatedParameters[4] = splitSheetAndColumns1[0];
separatedParameters[7] = splitSheetAndColumns1[1];
separatedParameters[8] = splitSheetAndColumns1[2];
}
优化后:
if(flag1){
bookFrom = splitTwoSheets[0].split("->")[0].replace("\"","").trim();
sheetFrom = splitTwoSheets[0].split("->")[1].split("\"")[0].trim();
String columnFrom1 = splitTwoSheets[0].split("->")[1].split("\"")[1];
columnFrom1 = deleteExtraBlanks(columnFrom1);
matchColumnFrom = columnFrom1.trim().split(" ")[0];
updateValueFrom = columnFrom1.trim().split(" ")[1];
} else{
bookFrom = "";
splitTwoSheets[0] = deleteExtraBlanks(splitTwoSheets[0]);
sheetFrom = splitTwoSheets[0].trim().split(" ")[0];
matchColumnFrom = splitTwoSheets[0].trim().split(" ")[1];
updateValueFrom = splitTwoSheets[0].trim().split(" ")[2];
}
if(flag2){
bookTo = splitTwoSheets[1].split("->")[0].replace("\"","").trim();
sheetTo = splitTwoSheets[1].split("->")[1].split("\"")[0].trim();
String columnTo = splitTwoSheets[1].split("->")[1].split("\"")[1];
columnTo = deleteExtraBlanks(columnTo);
matchColumnTo = columnTo.trim().split(" ")[0];
updateValueTo = columnTo.trim().split(" ")[1]; } else{
bookTo = "";
splitTwoSheets[1] = deleteExtraBlanks(splitTwoSheets[1]);
sheetTo = splitTwoSheets[1].trim().split(" ")[0];
matchColumnTo = splitTwoSheets[1].trim().split(" ")[1];
updateValueTo = splitTwoSheets[1].trim().split(" ")[2]; }
separatedParameters[1] = bookFrom;
separatedParameters[2] = sheetFrom;
separatedParameters[3] = bookTo;
separatedParameters[4] = sheetTo;
separatedParameters[5] = matchColumnFrom;
separatedParameters[6] = updateValueFrom;
separatedParameters[7] = matchColumnTo;
separatedParameters[8] = updateValueTo;
优化后,既防止出错、对应不上的问题,而且使代码更加简洁
if-else的优化举例的更多相关文章
- C# 代码性能优化举例
普通人如果说什么事情慢,指的是 5 分钟,10 分钟,或者 1 个小时.2 个小时.而程序员要说什么事情慢,他们指的是 2 纳秒. 每个纳秒对程序员来说都是非常宝贵的,所以,要对代码进行优化,优化,再 ...
- 遗传算法MATLAB实现(3):多元函数优化举例
多峰的Shubert为: 求f(x,y)在[-10,10]x[-10,10]上的最大值. MATLAB代码: fun_mutv函数为: function my=fun_mutv(x,y) t1=zer ...
- 遗传算法MATLAB实现(2):一元函数优化举例
遗传算法提供了一种求解非线性.多模型.多目标等复杂系统优化问题的通用框架. 先从例子开始,慢慢再总结理论... [例]利用遗传算法计算函数f(x)=x*cos(5*pi*x)+3.5在区间[-1,2. ...
- 网络爬虫与搜索引擎优化(SEO)
一.网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...
- c# 字符串比较优化
一,优化举例 二,浅谈StringComparison 三,C# CultureInfo 类 各国语言对应的区域性名称 一,优化举例 我们在写程序的时候,经常会用到字符串对比.例如:if(IsChec ...
- 小师妹学JVM之:深入理解JIT和编译优化-你看不懂系列
目录 简介 JIT编译器 Tiered Compilation分层编译 OSR(On-Stack Replacement) Deoptimization 常见的编译优化举例 Inlining内联 Br ...
- 8、android代码优化技术记录
1.length.length().size的优化 举例: int array_one[] = {1,2,3,4,5,6,7,8,9,10}; int array_two[] = {1,2,3,4,5 ...
- apache开源项目 -- tez
为了更高效地运行存在依赖关系的作业(比如Pig和Hive产生的MapReduce作业),减少磁盘和网络IO,Hortonworks开发了DAG计 算框架Tez.Tez是从MapReduce计算框架演化 ...
- 【PostgreSQL】资料索引(来源:德哥)
PostgreSQL 多应用场景实践 - 沙箱实验 https://github.com/digoal/blog/blob/master/201805/20180524_02.md 一.GIS < ...
随机推荐
- 认识php钩子-转白俊遥的博客
认识php钩子-转载白俊遥的博客 我们先来回顾下原本的开发流程:产品汪搞出了一堆需求:当用户注册成功后需要发送短信.发送邮件等等:然后聪明机智勇敢的程序猿们就一扑而上:把这些需求转换成代码扔在 用户注 ...
- c语言入门教程 / c语言入门经典书籍
用C语言开始编写代码初级:C语言入门必备(以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数 ...
- 【转】MYISAM表批量压缩
关于对MYISAM表的压缩,可以使用myisampack和myisamchk完成(myisampack完之后必须进行myisamchk才能使用压缩后的表,而且是只读的), 其详细地用法可以参考官方文档 ...
- div+css的优势在哪?
1.符合W3C标准.微软等公司都是他的支持者. 2.所搜引擎更加友好. 3.样式调整更加方便. 4.css简洁的代码,减少了带宽. 5.表现和结构分离.在团队开发中更容易分工 并不是取代table,t ...
- selenium+python cooking用法 (转)
selenium-webdriver(python)--cookie处理 driver.get_cookies() 获得cookie信息 add_cookie(cookie_dict) 向cooki ...
- PF_RING 实验
前提:pf_ring.ko 运行在模式2 收包实验: 使用两台机器同时对装PF_RING的机器进行发包,此机器的网卡流量达到14M的效果.如下所示: 上图为PF_RING自 ...
- .NET开源工作流RoadFlow-表单设计-新建表单(属性设置)
点击表单设计工具栏上的 新建表单 按钮会弹出新表单属性设置框: 表单名称:新表单表名称. 数据连接:表单对应的数据库连接(此连接在 系统管理-->数据库连接 中维护). 数据表:表单对应的数据库 ...
- Outlook打不开? 进程一大堆!
问题描述: ====== 关闭Outlook应用程序后,Outlook.exe进程仍在任务管理器里继续运行,不能关闭. 原因: ====== Outlook的插件或者扩展程序阻止Outlook关闭 解 ...
- hdu 5349 MZL's simple problem
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5349 MZL's simple problem Description A simple proble ...
- 归并排序 & 计数排序 & 基数排序 & 冒泡排序 & 选择排序 ----> 内部排序性能比较
2.3 归并排序 接口定义: int merge(void* data, int esize, int lpos, int dpos, int rpos, int (*compare)(const v ...