Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调用递归_Java_Recursion - Fatal编程技术网

Java 调用递归

Java 调用递归,java,recursion,Java,Recursion,我尝试编写一个递归函数,它使我能够在“li”html标记之间使用(添加一些文本)。以下是我可以拥有的所有案例: Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 <ol> <li>Coffee</li> <li>Tea</li> <li>Milk</li> </ol> Test 2 Test 2 Test 2 Test 2 Test 2 Test 2

我尝试编写一个递归函数,它使我能够在“li”html标记之间使用(添加一些文本)。以下是我可以拥有的所有案例:

Test 1 Test 1 Test 1 Test 1 Test 1 Test 1 
<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

Test 2 Test 2 Test 2 Test 2 Test 2 Test 2 
<ul>
  <li>Coffee dfg dfg dfg </li>
  <li>Tea dfg df gdf gfdg </li>
  <li>Mifdg dfg fdg lkdf gdf gdf </li>
</ul> 

Test 3 Test 3 Test 3 Test 3 Test 3 Test 3
<ol>
  <li>
    <ol>
        <li>Coffee</li>
        <li>Tea</li>
        <li>Milk</li>
    </ol>

  </li>
  <li>Tea</li>
  <li>Milk</li>
</ol>

Test 4 Test 4 Test 4 Test 4 Test 4 Test 4 
<ul>
  <li>Coffee dfg dfg dfg </li>
  <li>
        <ol>
            <li>Coffee</li>
            <li>Tea</li>
            <li>Milk</li>
        </ol>
  </li>
  <li>Mifdg dfg fdg lkdf gdf gdf </li>
</ul> 

测试1测试1测试1测试1测试1测试1测试1测试1
  • 咖啡
  • 牛奶
  • 测试2测试2测试2测试2测试2测试2测试2
    • 咖啡
    • Tea dfg df gdf gfdg
    • Mifdg dfg fdg lkdf gdf gdf
    测试3测试3测试3测试3测试3测试3测试3
  • 咖啡
  • 牛奶
  • 牛奶
  • 测试4测试4测试4测试4测试4测试4测试4
    • 咖啡
    • 咖啡
    • 牛奶
    • Mifdg dfg fdg lkdf gdf gdf

    我的代码:

    public static String isInnerTag(String text){
    
        final StringBuilder olBuilder = new StringBuilder(text);
    
        int beginText = text.indexOf("<ol>");
        int endText = olBuilder.indexOf("</ol>");
    
        String innerText = text.substring(beginText + 4, endText);
    
        innerText = innerText.replaceAll("</li>", "");
        String [] li = innerText.split("<li>");
    
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i < li.length; i++) {
    
            String temp = i + " " + li[i].toString();
            sb.append(temp);
        }
        System.out.println(sb);
        return text;
    }
    
    公共静态字符串isInnerTag(字符串文本){
    最终StringBuilder olBuilder=新StringBuilder(文本);
    int beginText=text.indexOf(“”);
    int endText=olBuilder.indexOf(“”);
    字符串innerText=text.substring(beginText+4,endText);
    innerText=innerText.replaceAll(“”,”);
    String[]li=innerText.split(
  • ); StringBuilder sb=新的StringBuilder(); 对于(int i=1;i
  • 输出:

    一杯咖啡 2茶 3牛奶 4牛奶 5牛奶 6牛奶 最后一杯牛奶

    我想在li标记中添加前文本,例如1、2、3等,并在第一个li 1的内部(测试4),下一个li(在下一个ol中)1.1、1.2、1.3等


    提前谢谢

    您尝试的递归代码在哪里?祝您好运!我会为你的成功祈祷。还有,为什么要使用递归呢?只需遍历文档(使用xpath或类似工具),选择所有
  • 元素。没必要把事情复杂化,就这么做吧!创建一个可嵌套的数据结构,并在该结构上进行迭代,在这个过程中呈现标记