特殊字符串对应的树节点信息的解析

package function;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class GetGroupInfo {

public static void main(String args[]){

String s1 =  "业务信息#机构业务";

String s2 =  "业务信息#旅行业务";

String s3 =  "客户信息#核心客户#有效性";

String s4 = "客户信息#核心客户#合法性";

String s5 =  "客户信息#理财客户#完整性";

String s6 = "客户信息#理财客户#唯一性";

String s7 =  "客户信息#信贷客户";

List l = new ArrayList();

l.add(s1);

l.add(s2);

l.add(s3);

l.add(s4);

l.add(s5);

l.add(s6);

l.add(s7);

int groupId=10000;

String currDealStr = "";

//存储单纯的节点name信息

List<String> nodeCon  =new ArrayList<String>();

List<String> nodeRelas  =new ArrayList<String>();

for(int i = 0;i<l.size();i++){

currDealStr = (String)l.get(i);

String nodeStrArr[] = currDealStr.split("#");

//每一条记录里的节点信息

for(int j =0;j<nodeStrArr.length;j++){

String nodeName = nodeStrArr[j];

String nodeRela = "";

if(j==0){

//第一层评分组,评分组的上级肯定是评分卡

if(nodeCon.contains(nodeName)){

System.out.println("exist");

//break 跳出了外层循环,不符合逻辑

continue;

}else{

System.out.println("first level not exist,add ");

nodeRela = (groupId++)+"@"+nodeName+"@card_root";

nodeCon.add(nodeName);

nodeRelas.add(nodeRela);

}

}else{

String currPar = "";

if(nodeCon.contains(nodeName)){

System.out.println("exist");

//break 跳出了外层循环,不符合逻辑

continue;

}else{

System.out.println("not exist,add");

//找到当前节点的父节点

currPar = nodeStrArr[j-1];

nodeCon.add(nodeName);

//找到当前节点的父节点的id信息

String parId= "";

Iterator it = nodeRelas.iterator();

String nodeSplit[] = null;

while(it.hasNext()){

String node = (String)it.next();

nodeSplit = node.split("@");

if(nodeSplit[1].equals(currPar)){

parId = nodeSplit[0];

break;

}

}

nodeRelas.add((groupId++)+"@"+nodeName+"@"+parId);

}

}

}

}

System.out.println(nodeCon);

System.out.println(nodeRelas);

}

}

猜你喜欢

转载自zengshaotao.iteye.com/blog/2316634