JWFD开源工作流矩阵引擎测试版本BUG20231022修正代码

java 复制代码
    public void ParamFileOutputValue(String paramfile) {

        String s = "";
        String sp = "";
        String ssp = "";

        List<String> list = new ArrayList<String>();
        int p = 0;
        int k = 0;
        //这个地方要修改为整个参数表的最大行数,而不是起始点行数!!
        s = this.ParamlineScanner(paramfile).substring(1, 2);
        p = Integer.parseInt(s);
        k = ParamlineScanOutput(paramfile);

        //  System.out.println(ParamlineScanOutput(paramfile));
        //  System.out.println(this.ParamlineScanner(paramfile).substring(4, 7));
        System.out.println("矩阵参数表遍历算法启动,输出:");
        /*
           节点数字标签大于十位数,导致子字符串的序号发生变化,怎么形成动态的序号标签呢?
           取出nodexx的长度,然后截取最后的字符串,无论多少位数,都可以进行对比.已经按照正则表达式的方法完成该修正代码
        
           在处理复杂拓扑网络的时候,这个算法的长度是否与拓扑结构相关?固定的代码能否处理
           不同的变化的拓扑结构,这个TEST888参数表作为矩阵引擎的测试数据,如果能够完全的遍历完成,那就非常好了
           随着矩阵参数表的日益庞大,这个算法也越来越复杂,这种代码结构很显然存在巨大的缺陷,需要重新设计
       
        String str = this.ParamSubscriptScanner(paramfile).get(p - 1).toString();
        String[] strs = str.split(",");

        System.out.println(strs[0].toString().substring(1));//第一个节点
        System.out.println(strs[1].toString().substring(0, strs[1].toString().length() - 1));//第二个节点
       */
        
        if (this.ParamlineScanner(paramfile).substring(4, 7).equals("起始点")) {
            System.out.println(this.ParamSubscriptScanner(paramfile).get(p - 1).toString());
            
             String str = this.ParamSubscriptScanner(paramfile).get(p - 1).toString();
             String[] strs = str.split(",");
            
            System.out.println("起始点的下一个邻接点是:" + strs[1].toString().substring(0, strs[1].toString().length() - 1));
            sp = strs[1].toString().substring(0, strs[1].toString().length() - 1);

            for (int i = 0; i <= k - 1; i++) {
                //输出所有的节点标签

                 String str1 = this.ParamSubscriptScanner(paramfile).get(i).toString();
                 String[] strs1 = str1.split(",");
                
                //进行对比,如何进行全部参数的对比,并输出?基本结构就是匹配之后再进行循环再匹配输出,可以形成一个独立的函数,然后取出来递归
                if (strs1[0].toString().substring(1).equals(sp)) {
                    //输出下一批邻接点,继续进行搜索和对比,直到达到最后一个节点

                    System.out.println("下一个邻接点是:" + strs1[1].toString().substring(0, strs1[1].toString().length() - 1));
                    ssp = strs1[1].toString().substring(0, strs1[1].toString().length() - 1);

                    for (int j = 0; j < k - 1; j++) {

                        String str2 = this.ParamSubscriptScanner(paramfile).get(j).toString();
                        String[] strs2 = str2.split(",");
                        
                        if (strs2[0].toString().substring(1).equals(ssp)) {

                            System.out.println("再下一个邻接点是:" + strs2[1].toString().substring(0, strs2[1].toString().length() - 1));

                        }
                    }
                }

            }

        }
        // 输出这行的节点标签内容:(node7,node6)的node7的下一个邻接点node6
        /*
              下标:(7,6): 节点标签:(node7,node6): 节点状态:(0,0): 节点标志:起始点 
              取出substring node6,作为对比字符串,搜索所有的参数表行数据,进行对比,输出下一个邻接点
              
         */
        System.out.println("遍历算法未完全完工,敬请期待,该版本为测试版本");
        System.out.println("工作流矩阵引擎-遍历算法测试版本......待续");
    }

请把该函数覆盖到JWFD开发包的org.jwfd.workflowEngines.Matrix.DataMatrix.java文件的同名函数中,非常感谢大家的支持,因为矩阵引擎并没有任何先例可以借鉴,所以一步一步的再做,还有很多不完善的地方。。。。

相关推荐
挺菜的14 分钟前
【算法刷题记录(简单题)003】统计大写字母个数(java代码实现)
java·数据结构·算法
掘金-我是哪吒1 小时前
分布式微服务系统架构第156集:JavaPlus技术文档平台日更-Java线程池使用指南
java·分布式·微服务·云原生·架构
亲爱的非洲野猪1 小时前
Kafka消息积压的多维度解决方案:超越简单扩容的完整策略
java·分布式·中间件·kafka
wfsm1 小时前
spring事件使用
java·后端·spring
微风粼粼2 小时前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
缘来是庄2 小时前
设计模式之中介者模式
java·设计模式·中介者模式
rebel2 小时前
若依框架整合 CXF 实现 WebService 改造流程(后端)
java·后端
代码的余温3 小时前
5种高效解决Maven依赖冲突的方法
java·maven
慕y2743 小时前
Java学习第十六部分——JUnit框架
java·开发语言·学习
paishishaba4 小时前
Maven
java·maven