2016-10-10 76 views
-1

输入: - >我有不同的组名,如:的Java:是否有任何其他有效的方式来做到这一点

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

所需的输出:

(why_gis06352_not,why_abcd_not,why_def_not,why_abc_not)

CODE:

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。 COM .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名称=(只有abc)没有点?根据你的代码,输出将会来= abc而不是(要求的输出来的是)why_abc_not – Prateek

+0

啊,我错过了这种情况,对不起。我已编辑并更正。 –

相关问题