共有部分:

             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的优化举例的更多相关文章

  1. C# 代码性能优化举例

    普通人如果说什么事情慢,指的是 5 分钟,10 分钟,或者 1 个小时.2 个小时.而程序员要说什么事情慢,他们指的是 2 纳秒. 每个纳秒对程序员来说都是非常宝贵的,所以,要对代码进行优化,优化,再 ...

  2. 遗传算法MATLAB实现(3):多元函数优化举例

    多峰的Shubert为: 求f(x,y)在[-10,10]x[-10,10]上的最大值. MATLAB代码: fun_mutv函数为: function my=fun_mutv(x,y) t1=zer ...

  3. 遗传算法MATLAB实现(2):一元函数优化举例

    遗传算法提供了一种求解非线性.多模型.多目标等复杂系统优化问题的通用框架. 先从例子开始,慢慢再总结理论... [例]利用遗传算法计算函数f(x)=x*cos(5*pi*x)+3.5在区间[-1,2. ...

  4. 网络爬虫与搜索引擎优化(SEO)

    一.网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...

  5. c# 字符串比较优化

    一,优化举例 二,浅谈StringComparison 三,C# CultureInfo 类 各国语言对应的区域性名称 一,优化举例 我们在写程序的时候,经常会用到字符串对比.例如:if(IsChec ...

  6. 小师妹学JVM之:深入理解JIT和编译优化-你看不懂系列

    目录 简介 JIT编译器 Tiered Compilation分层编译 OSR(On-Stack Replacement) Deoptimization 常见的编译优化举例 Inlining内联 Br ...

  7. 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 ...

  8. apache开源项目 -- tez

    为了更高效地运行存在依赖关系的作业(比如Pig和Hive产生的MapReduce作业),减少磁盘和网络IO,Hortonworks开发了DAG计 算框架Tez.Tez是从MapReduce计算框架演化 ...

  9. 【PostgreSQL】资料索引(来源:德哥)

    PostgreSQL 多应用场景实践 - 沙箱实验 https://github.com/digoal/blog/blob/master/201805/20180524_02.md 一.GIS < ...

随机推荐

  1. 关于commons-fileupload组件上传文件中文名乱码问题

    java web开发,常用到的文件上传功能,常用的commons-fileupload和commons-io两个jar包.关于如何使用这两个jar来完成文件上传的功能,这里不做详解.使用commons ...

  2. WebBrowser里网页根据文字判断来点击链接 无Name及ID时

    uses ActiveX, ComObj, MSHTML; 根据连接文字点击连接- 一般情况下的连接 Procedure HTMLClinkByText(text:string;Wbr:TWebBro ...

  3. How to display SSRS report based on customer/Vendor specific language [AX2012]

    Common requirement is to show the reports in customer’s language. [example : Quotations, sales confi ...

  4. UCOS2_STM32F1移植详细过程(三)

    Ⅰ.概述 上一篇文章是讲述ST芯片相关的配置和OS裁剪相关的配置,接着上一篇文章来讲述关于UCOS的移植,该文主要针对uC/OS-II Ports下面os_cpu_a.asm.os_cpu_c.c和o ...

  5. 命令行工具cmder

    1.下载地址 http://bliker.github.io/cmder/ 分为两个版本:mini版和Full版 2.快捷命令配置: 比如,快速启动canssandra/redis数据库服务和查询工具 ...

  6. hihoCoder-1000-A+B

    题目描述:传统的A+B题 使用语言:C 代码: #include <stdio.h> int main(void){ int a,b; while((scanf("%d %d&q ...

  7. POJ 2960 S-Nim<博弈>

    链接:http://poj.org/problem?id=2960 #include<stdio.h> #include<string.h> ; ; int SG[N];//S ...

  8. 批处理判断是否存在文件,存在则运行另外一个bat文件

    现在需求如下: 使用bat文件判断是否存在ktr文件,存在则运行pan.bat,执行kettle脚本. 代码如下: @echo off @title 批处理判断文件夹是否存在 cd /d F: rem ...

  9. [原创]PostgreSQL Plus Advanced Server批量创建分区表写入亿级别数据实例

    当前情况:大表的数据量已接近2亿条我的解决思路:为它创建n*100个分区表,将各个分区表放在不同的tablespace上这样做的优点:1.首先是对这个级别的数据表的性能会有所提升2.数据管理更科学3. ...

  10. iOS学习之C语言函数指针

    通过函数名调用函数: int max = maxValue(4, 5); printf("max = %d\n", max);     函数类型:int (int, int) 1. ...