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 < ...
随机推荐
- mariadb一些命令介绍及mariadb架构图和索引
mariadb> SHOW GLOBAL VARIABLES; 全局变量影响服务器的全局操作 mariadb> SHOW [SESSION] VARIABLES; 客户端变量,只对当前会话 ...
- Nginx Location配置语法介绍、优先级说明
nginx 语法规则:location [=|~|~*|^~|!~|!~*] /uri/ { … } location匹配的是$document_uri,$document_uri 会随 ...
- Eclipse编码问题
通常在Eclipse下,mac和windows编码是不一样的.如果含有中文java sources通常会出现乱码. 解决---小程序! import java.io.File; import java ...
- DevExpress BarManager 部分用法
1.创建一个BarManager会默认产生三个菜单.BarManager右键ShowDesignTime enhancements会显示[add]按钮,可对菜单进行编辑. 2.其中比较有用的属性: 选 ...
- jquery 小知识点
//计算checkbox有多少个被选中 $("input[name='user_apply']:checked").length)://可以查看 所有的name=user_appl ...
- ORA-14099 错误解决
DB: 11.2.0.3.0 在测试把普通表修改为交换分区的时候,出现ORA-14099: all rows in table do not qualify for specified partiti ...
- 什么是O/R Mapping(ORM)
ORM,即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一 ...
- 调试mvc 源码【转:http://www.cnblogs.com/wucj/archive/2013/06/09/3128698.html】
最近在研究asp.net mvc的源码,于是在想,既然提供了源码,那我们如何进入源码调试了?在网上找了一些调试的方法,试了几个都不行,于是折腾了一上午,终于弄出来了,下面看看我的操作步骤. 一:准 ...
- MySQL 触发器简单实例
~~语法~~ CREATE TRIGGER <触发器名称> --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.{ BEFORE | ...
- 【转】matlab采样函数
dyaddown 功能:对时间序列进行二元采样,每隔一个元素提取一个元素,得到一个降采样时间序列. 格式: 1.y = dyaddown(x, EVENODD) 当EVENODD=0时,从x中第二个元 ...