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 < ...
随机推荐
- Delphi的"Invalid pointer operation"异常的解决办法
今天用Delphi编写了个dll,用到了TStringList来传递多参数,如下: [delphi] view plaincopy 01.function DBM_SetParam(procName: ...
- ASP.NET Web API安全认证
http://www.cnblogs.com/codeon/p/6123863.html http://open.taobao.com/docs/doc.htm?spm=a219a.7629140.0 ...
- psql: 致命错误: 用户 "postgres" Ident 认证失败
RedHat: 问题: psql -U postgres 时出现:psql: 致命错误: 用户 "postgres" Ident 认证失败 解决: 修改 /var/lib/pgs ...
- wpf mvvm MenuItem的Command事件
这是一个事件的辅助类,可以通过它实现MenuItem的Command事件 public class MyCommands : Freezable, ICommand, ICommandSource { ...
- android线程间通讯
近来找了一些关于android线程间通信的资料,整理学习了一下,并制作了一个简单的例子. andriod提供了 Handler 和 Looper 来满足线程间的通信.例如一个子线程从网络上下载了一副图 ...
- asp.net实现手机号码归属地查询,代码如下
protected void Button1_Click(object sender, EventArgs e) { if (Regex.IsMatch(TextB ...
- libevent 定时器示例
程序执行结果: 每隔2秒,触发一次定时器. (2)98行:evtimer_assign在event.h中定义如下: 再来看看event_assign函数: ev 要初始化的事件对象 base ...
- 今天开始应该使用 5 个JavaScript调试技巧
原文:5 Javascript debugging tips you’ll start using today 我之前使用过用 printf debugging,自此之后我用这种方法似乎总能更快地解决 ...
- Modal的跳转方法为什么会显得那么奇怪
初学Modal Segue的时候,并不能理解它为什么要做成这样.从A界面跳转到B界面还算正常,但是从B界面返回A界面,就显得略显猎奇了.必须先在A界面的Controller中自己造个方法@IBActi ...
- Swift Tips - 当 Swift 遇上 CocoaPods
CocoaPods 作为 iOS 开发的包管理工具,几乎成为了 Objective-C 的行业标准.它为我们提供了非常方便的包管理功能.而苹果正式发布 Swift 语言也已经有半年多时间了,Swift ...