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文件的同名函数中,非常感谢大家的支持,因为矩阵引擎并没有任何先例可以借鉴,所以一步一步的再做,还有很多不完善的地方。。。。

相关推荐
_oP_i2 分钟前
Pinpoint 是一个开源的分布式追踪系统
java·分布式·开源
mmsx5 分钟前
android sqlite 数据库简单封装示例(java)
android·java·数据库
武子康30 分钟前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
豪宇刘2 小时前
MyBatis的面试题以及详细解答二
java·servlet·tomcat
秋恬意2 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
FF在路上2 小时前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言
真的很上进3 小时前
如何借助 Babel+TS+ESLint 构建现代 JS 工程环境?
java·前端·javascript·css·react.js·vue·html
众拾达人3 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.3 小时前
Mybatis-Plus
java·开发语言
不良人天码星3 小时前
lombok插件不生效
java·开发语言·intellij-idea