2016-10-10 6 views
-1

вход: -> У меня есть другое название группы, как:Java: есть ли другой эффективный способ сделать это

(gis06352.b.com, corp.abcd.b.com, corp.def .nam.b.com, а)

Обязательный выход:

(why_gis06352_not, why_abcd_not, why_def_not, why_abc_not)

КОД:

package a; 

public class Demo { 

public static void main(String[] args) { 
    System.out.println("Group name : " 
      + getgroupName("abc.logon.ds.b.com")); 
} 

public static String getTestGrpName(String groupName) { 

    int idxOf; 
    int idxOfLstDot; 
    if (groupName != null && !"".equals(groupName)) { 
     if (groupName.contains(".nam.corp.b.com")) { 
      idxOf = groupName.indexOf(".nam.corp.b.com"); 
      groupName = groupName.substring(0, idxOf); 
      idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      groupName = "Why" 
        + groupName.substring(idxOfLstDot) + "Not"; 

     } else if (groupName.contains(".corporate.b.com")) { 
      idxOf = groupName.indexOf(".corporate.b.com"); 
      groupName = groupName.substring(0, idxOf); 
      idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      groupName = "Why" 
        + groupName.substring(idxOfLstDot) + "Not"; 

     } else if (groupName.contains(".gis.corp.b.com")) { 
      idxOf = groupName.indexOf(".gis.corp.b.com"); 
      groupName = groupName.substring(0, idxOf); 
      idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      groupName = "Why" 
        + groupName.substring(idxOfLstDot) + "Not"; 

     } else if (groupName.contains(".logon.ds.b.com")) { 
      idxOf = groupName.indexOf(".logon.ds.b.com"); 
      groupName = groupName.substring(0, idxOf); 
      idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      groupName = "Why" 
        + groupName.substring(idxOfLstDot) + "Not"; 

     } else if (groupName.contains("copr1.b.com")) { 
      idxOf = groupName.indexOf("copr1.b.com"); 
      groupName = groupName.substring(0, idxOf); 
      idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      groupName = "Why" 
        + groupName.substring(idxOfLstDot) + "Not"; 

     } else if (groupName.contains(".nam.b.com")) { 
      idxOf = groupName.indexOf(".nam.b.com"); 
      groupName = groupName.substring(0, idxOf); 
      idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      groupName = "Why" 
        + groupName.substring(idxOfLstDot) + "Not"; 

     } else if (groupName.contains(".b.com")) { 
      idxOf = groupName.indexOf(".b.com"); 
      groupName = groupName.substring(0, idxOf); 
      idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      groupName = "Why" 
        + groupName.substring(idxOfLstDot) + "Not"; 
     } 

     else { 
      groupName = "Why" + groupName + "Not"; 
     } 
    } 
    return groupName; 
} 
} 

Выход:

why_abc_not

+1

Откуда вы знаете, какую часть названия группы вы хотите? У вас, похоже, есть только жестко заданные значения для ваших примеров. – marstran

+0

да, я набор имен групп, которые классифицируются как показано ниже: Удалить суффикс из названия GRP, как -> .nam.corp.b.com .corporate.b.com .gis.corp.b. ком .b.com .nam.b.com .copr1.b.com .logon.ds.b.com перед этой первой точки нам нужно добавить WHy_ & NOT_ на фронте и в конце rspctvly. – Prateek

ответ

0

Создайте переменную временную и объединить общую линию на основе этой переменной темп.

temp = true;

if (groupName != null && !"".equals(groupName)) { 
     if (groupName.contains(".nam.corp.b.com")) { 
      idxOf = groupName.indexOf(".nam.corp.b.com"); 

     } else if (groupName.contains(".corporate.b.com")) { 
      idxOf = groupName.indexOf(".corporate.b.com"); 


     } else if (groupName.contains(".gis.corp.b.com")) { 
      idxOf = groupName.indexOf(".gis.corp.b.com"); 

     } else if (groupName.contains(".logon.ds.b.com")) { 
      idxOf = groupName.indexOf(".logon.ds.b.com"); 


     } else if (groupName.contains("copr1.b.com")) { 
      idxOf = groupName.indexOf("copr1.b.com"); 

     } else if (groupName.contains(".nam.b.com")) { 
      idxOf = groupName.indexOf(".nam.b.com"); 

     } else if (groupName.contains(".b.com")) { 
      idxOf = groupName.indexOf(".b.com"); 

     } 
     else { 
      groupName = "Why" + groupName + "Not"; 
      temp=false; 
     } 
     if(temp=true){ 
      groupName = groupName.substring(0, idxOf); 
      idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      groupName = "Why"+ groupName.substring(idxOfLstDot) + "Not"; 
     } 
    } 
    return groupName; 

} 
0

Мой вкус был бы следующим. Измените свое. :-)

private static final String[] knownGroupNames = { ".nam.corp.b.com", ".corporate.b.com", ".gis.corp.b.com", 
     ".logon.ds.b.com", "copr1.b.com", ".nam.b.com", ".b.com" }; 

public static String getTestGrpName(String groupName) { 
    if (groupName == null || groupName.isEmpty()) { 
     return groupName; 
    } 
    for (String knownGroupName : knownGroupNames) { 
     if (groupName.contains(knownGroupName)) { 
      int idxOf = groupName.indexOf(knownGroupName); 
      groupName = groupName.substring(0, idxOf); 
      int idxOfLstDot = groupName.lastIndexOf(".") + 1; 
      return "Why" + groupName.substring(idxOfLstDot) + "Not"; 
     } 
    } 
    return "Why" + groupName + "Not"; 
} 
+0

Что в случае, если у нас есть имя grp like = (только abc) нет точки ?? в соответствии с кодом ур вывод будет = abc и не (требуется выход, который есть) why_abc_not – Prateek

+0

А, я пропустил этот случай, извините. Я редактировал и исправлял. –

Смежные вопросы