boolean fisrt=true;
for(int i=1;i<=FLAG;i++){
if(fisrt&&((int)Math.pow(2, i)&carrier.getFlags())!=0){
sb.append(flag[i-1]);
fisrt=false;
}else if(((int)Math.pow(2, i)&carrier.getFlags())!=0&&!fisrt){
sb.append(" , "+flag[i-1]);
}
}
a few days later:
private String getFlagString(int flags) {
StringBuilder sb = new StringBuilder();
String separator = " , ";
for (CarrierFlagType c : CarrierFlagType.values()) {
if ((CarrierFlagType.getCarrierTypeValue(c) & flags) != 0) {
sb.append(c + separator);
}
}
if (sb.length() > 0)
sb.delete(sb.length() - separator.length(), sb.length() - 1);
return sb.toString();
}