У меня есть несколько ролей, и у каждой роли есть пользователи.
Так что моя проблема в соответствии с нет.ролей и нет.из выбранных пользователей я должен создать график, используя graphviz.Язык Graphviz похож на (A -> B;) (B -> C;) (B -> D;) (C -> E;) (D -> E;) (E -> F)
Поэтому я должен создать язык графов в соответствии с тем, сколько у меня ролей и нет.из выбранных мной пользователей ...
Входящая строка похожа на = (1CS_3Admin_1BOD_2SH_1Others).И график для этого языка может быть таким: -
marapet Это то, что я делаю.
Мой язык похож на 1CS_3Admin_1BOD_2SH_1Другие1,3,1,2 - это количество выбранных пользователей, например, 1CS означает одного пользователя для роли CS.Теперь я разделил их с '_' в качестве разделителя.Теперь я получаю массив строк.Таким образом, настоящая проблема состоит в том, чтобы сделать язык из этого массива значений строк.Здесь «имя» - это строка, которую я получаю: -
Graphviz gv = new Graphviz();
gv.addln(gv.start_graph());
gv.addln("Start;");
if(name.startsWith("_"));
name=name.substring(1);
String[] str=null;
if(name.contains("_"))
str = name.split("_");
int sPreviousRepeat=0;
String sPrevious="";
int sCurrRepeat=0;
String sCurr="";
String finalInst="Start -> ";
for(int i=0;i<str.length;i++) {
sCurrRepeat=Integer.parseInt(String.valueOf(str[i].charAt(0)));
sCurr=str[i].substring(1);
if(i!=0){
sPreviousRepeat = Integer.parseInt(String.valueOf(str[i-1].charAt(0)));
sPrevious = str[i-1].substring(1);
}
if(sCurrRepeat==1){
if(i==0)
finalInst=finalInst+sCurr+";";
else
finalInst=finalInst + sPrevious+" -> "+sCurr+";";
}
else{
for(int j=0;j<sCurrRepeat;j++){
//cant figure out?????
}
}
}