1,Although the condition "value.indexOf("(") < 0" can be instead by "bracketsCount(value,'(') < bracketsCount(value,')')",use "||",cos the sencond condition can rarely be satisfied and the second condition call a mehtod including a for loop which will lower the performance.
2,no if in if.
//before refactoring
if (value.endsWith(")"))
{
//AR43966, modify by Jerry Gao,April 24,2007
if(value.indexOf("(") < 0 || bracketsCount(value,'(') < bracketsCount(value,')')){
value = value.substring(0, value.length() - 1);
rightBrackets[i] = "yes";
}
//end
} |
//after refactoring
//AR43966, modify by Jerry Gao,April 25,2007
//add condition after &&
if (value.endsWith(")") && (value.indexOf("(") < 0 || bracketsCount(value,'(') < bracketsCount(value,')'))) {
value = value.substring(0, value.length() - 1);
rightBrackets[i] = "yes";
} |
/**
* get the count of destination char,add by Jerry Gao for AR43966,April 25,2007
* @param sourceStr - source string
* @param desChar - the char which want to search
* @return the count of destination chars
*/
private static int bracketsCount(String sourceStr,char desChar){
int count = 0;
for(int i = 0; i < sourceStr.length();i++){
if(sourceStr.charAt(i) == desChar)
count++;
}
return count;
}