`
zengshaotao
  • 浏览: 787269 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

 
阅读更多

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);

 

}

}

 

分享到:
评论

相关推荐

    Q767996.zip 把字符串变成树节点的算法 C#

    在IT领域,字符串到树节点的转换是一种常见的数据结构操作,尤其在解析语法、构建抽象语法树(AST)或处理XML、JSON等数据格式时。本案例中的"Q767996.zip"文件可能包含了一个C#实现的具体算法,用于将字符串转化为...

    JAVA JAXB 解析XML嵌套子节点为字符串

    在Java开发中,JAXB(Java Architecture for XML ...对于嵌套子节点,我们可以通过创建对应的Java类模型来解析,或者结合XPath来直接提取字符串。理解并熟练运用这些技术,能有效提高处理XML数据的效率和准确性。

    字符串反解析成树结构

    这个过程通常涉及到从一串预定义格式的字符串中提取信息,并将这些信息构建成一个具有层级关系的数据结构——树。在这个场景下,我们使用的编程语言是Java,它提供了丰富的库和工具来帮助我们实现这一目标。 首先,...

    四则运算解析器(字符串)

    四则运算解析器是一种计算机程序,它能够接收包含加、减、乘、除等四则运算符的字符串表达式,并将其转化为可执行的计算过程。这个解析器通常用于解决基础的数学问题,对于编程初学者来说,理解并实现这样一个解析器...

    PB解析XML字符串 把XML 变为数据窗口

    在PB中解析XML字符串,通常是通过内置的XML处理函数或者第三方库来实现的,这样可以将XML文档的节点和属性映射到数据窗口的列和行,从而便于数据的访问和操作。 解析XML字符串的过程通常包括以下步骤: 1. 加载XML...

    每日一题:字符串高效查找-前缀树

    如果一个字符串在前缀树中,那么从根节点到该字符串对应节点的路径就存在。每个节点可能包含一个标记,表明该路径上的字符串是否在集合中结束。 前缀树的构建过程如下: 1. 从根节点开始,为每个输入字符串的第一个...

    字符串处理——字典树.rar

    在IT领域,字符串处理是一项基础且重要的技能,广泛应用于数据解析、文本挖掘、搜索引擎优化等多个场景。本资源“字符串处理——字典树.rar”聚焦于一种高效的数据结构——字典树(Trie),它在字符串处理中发挥着...

    字符串计数 C语言实现 ACM习题

    根据给定的信息,本文将对“字符串计数 C语言实现 ACM习题”这一主题进行深入解析,主要包括以下几个方面的内容:题目背景、问题描述、代码分析以及解决方案。 ### 题目背景 本题属于ACM竞赛中的基础练习题,旨在...

    哈夫曼树二进制与字符串转换

    5. **解码二进制串**:根据哈夫曼树和哈夫曼编码表,将二进制串按编码顺序反向解析回原始字符串。 在实际编程中,我们还需要考虑如何存储和表示哈夫曼树,以及如何处理哈夫曼编码表,以便在编码和解码之间保持一致...

    C# XML字符串包含特殊字符的处理转换方法小结

    在C#中,处理XML字符串时,由于XML的语法规则,某些特殊字符不能直接出现在XML文档中,否则会导致解析错误。这些特殊字符包括小于号 `、大于号 `&gt;`、和与号 `&`。此外,对于XML属性值,单引号 `'` 和双引号 `"` 也...

    1.二进制字符串转十进制数值_labview_二进制转十进制_

    4. 结果输出:最后得到的累加和就是原二进制字符串对应的十进制数值。 在LabVIEW中,这些步骤可以通过连接不同类型的节点和控件来实现,如字符串函数、数组操作、数学运算等。自定义VI的优势在于可以定制化操作,以...

    vs2008实现字符串表达式的解析并运算出结果

    在编程领域,字符串表达式解析是一项常见的任务,它涉及到将字符串形式的数学或逻辑表达式转化为可执行的代码。在本场景中,我们讨论的是如何在Visual Studio 2008(VS2008)环境下实现这个功能。VS2008是一个强大的...

    利用eval()函数给树节点统一添加单击事件实现新建选项卡功能

    但是,由于树形结构可能动态生成,或者节点数据是字符串形式,作者可能选择使用`eval()`来解析并执行添加事件处理程序的代码。 下面是一个简化的示例,展示了如何使用`eval()`为树节点添加点击事件: ```...

    java反射机制 字符串——java对象

    可能的实现是先使用XML解析库(如JAXB或DOM)将XML字符串解析成DOM树,然后通过反射找到对应的类并创建实例,再根据XML节点信息设置对象的属性。这一过程涉及到了对`java.lang.reflect`包中类的使用,如`Class.for...

    自己写的任意节点树,可用于XML解析

    【标题】"自己写的任意节点树,可用于XML解析" 暗示了这是一个自定义实现的树形数据结构,特别设计用于处理XML文档。在计算机科学中,XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,常用于应用程序间的...

    字符串数学表达试解析执行的C++源代码

    解析是将输入的字符串拆分成有意义的结构,即语法树或抽象语法树(Abstract Syntax Tree, AST)。这通常通过词法分析(lexical analysis)和语法分析(syntactic analysis)完成。词法分析会将字符串分解成一系列的...

    JDK自带方法解析xml特定格式的字符串

    本篇文章将详细探讨如何使用JDK自带的方法解析XML特定格式的字符串。 首先,我们需要了解JDK中处理XML的主要API,包括`javax.xml.parsers`包下的`DocumentBuilderFactory`和`DocumentBuilder`,以及`org.w3c.dom`包...

    jackson 对象json字符串数组集合互转

    它可以将任何Java对象转换为JSON字符串,同时也可以将JSON字符串解析成Java对象。例如,`objectMapper.writeValueAsString(obj)`用于对象转JSON,而`objectMapper.readValue(jsonStr, MyClass.class)`则用于JSON转...

    IT笔试面试--Trie树前缀树常考题目及解析

    如果被删除的字符串不是其他字符串的前缀,则只需从树中删除该字符串的节点。如果是前缀,则需要更新节点的状态来反映字符串已被删除的事实。 ##### 查找操作 查找操作用于确定一个字符串是否存在于Trie树中。我们...

    哈夫曼算法压缩和解压字符串.doc

    在解压缩阶段,首先需要解析出哈夫曼编码,然后按照这些编码重新构造原始字符串。这通常涉及到从压缩的字节流中读取二进制编码,根据哈夫曼树逆向解析回字符。这个过程与压缩正好相反:从根节点开始,根据二进制位的...

Global site tag (gtag.js) - Google Analytics