的Java:是否有任何其他有效的方式来做到这一点
问题描述:
输入: - >我有不同的组名,如:的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
答
创建临时变量,并结合基于该临时变量中的公共线。
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;
}
答
我的口味是为了以下。修改为你的。 :-)
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
啊,我错过了这种情况,对不起。我已编辑并更正。 –
你怎么知道你想要哪个组名?你似乎只为你得到的例子硬编码值。 – marstran
是的,我已经设置其分类如下组的名称:从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