导航:首页 > 编程语言 > java递归字符串

java递归字符串

发布时间:2025-07-18 10:33:38

java将字符串逆序递归方式输出

publicstaticStringreverse(Strings){
if(s==null){
镇运returns;
}
inti=s.indexOf("");
if(i==-1){
闹饥returns;
}
御弯梁returnreverse(s.substring(i+1))+""+s.substring(0,i);
}

⑵ 如何用java递归生成带children的json串

这个问题有点没意义,因为java已经有相应的jar了,不论是阿里的fastjson,还是gson,又或者是jackson,都是已经很成熟的jar了。如果非要自己去写的话,就需要用到反射了。简单来说,就是获取对象的所有属性。复杂说的话,要判断对象的属性,判断属性类型,判断属性值是否为null,判断对象是否是有transient修饰,判断字符串里面是否有双引号等等。然后通过StringBuffer或是StringBuilder去拼接字符串,来生成json串,至于是StringBuffer还是StringBuilder就看你的需要再决定了

⑶ java递归算法的例子。

阶乘:

要求:给定一个数值,计算出它的阶乘值,例如5的阶乘为5*4*3*2*1

实现:

[html] view plain

<span style="font-size:12px;"> // 利用递归实现一个数的阶乘值 private static BigDecimal getNum(BigDecimal inNum) { if (inNum.compareTo(BigDecimal.ONE) == 0) { return inNum; } return inNum.multiply(getNum(inNum.subtract(BigDecimal.ONE))); }</span>

(2)Fibonacci数列:1,1,2,3,5,8,13……

要求:找出数列中指定index位置的数值

实现:

[html] view plain

<span style="font-size:12px;"> // 利用递归实现了Fibonacci数列 private static int fab(int index) { if (index == 1 || index == 2) { return 1; } else { return fab(index - 1) + fab(index - 2); } }</span>

(3)汉诺塔

要求:汉诺塔挪动

实现:

[html] view plain

<span style="font-size:12px;"> <span style="white-space:pre;"> </span>private static final String DISK_B = "diskB"; <span style="white-space:pre;"> </span>private static final String DISK_C = "diskC"; <span style="white-space:pre;"> </span>private static final String DISK_A = "diskA"; <span style="white-space:pre;"> </span>static String from=DISK_A; <span style="white-space:pre;"> </span> static String to=DISK_C; <span style="white-space:pre;"> </span> static String mid=DISK_B; <span style="white-space:pre;"> </span> public static void main(String[] args) { <span style="white-space:pre;"> </span> String input=JOptionPane.showInputDialog("please input the number of the disks you want me move."); <span style="white-space:pre;"> </span> int num=Integer.parseInt(input); <span style="white-space:pre;"> </span> move(num,from,mid,to); <span style="white-space:pre;"> </span> }</span>

[html] view plain

<span style="font-size:12px;"> // 利用递归实现汉诺塔 private static void move(int num, String from2, String mid2, String to2) { if (num == 1) { System.out.println("move disk 1 from " + from2 + " to " + to2); } else { move(num - 1, from2, to2, mid2); System.out.println("move disk " + num + " from " + from2 + " to " + to2); move(num - 1, mid2, from2, to2); } }</span>

(4)排列组合

要求:将输入的一个字符串中的所有元素进行排序并输出,例如:你给出的参数是"abc",

则程序会输出

abc

acb

bac

bca

cab

cba

实现:

[html] view plain

<span style="font-size:12px;"><span style="white-space:pre;"> </span>public static void permute(String str) { <span style="white-space:pre;"> </span> char[] strArray = str.toCharArray(); <span style="white-space:pre;"> </span> permute(strArray, 0, strArray.length - 1); <span style="white-space:pre;"> </span>}</span>

[html] view plain

<span style="font-size:12px;"> // 利用递归实现,将输入的一个字符串中的所有元素进行排序并输出 public static void permute(char[] list, int low, int high) { int i; if (low == high) { String cout = ""; for (i = 0; i <= high; i++) { cout += list[i]; } System.out.println(cout); } else { for (i = low; i <= high; i++) { char temp = list[low]; list[low] = list[i]; list[i] = temp; permute(list, low + 1, high); temp = list[low];

⑷ java怎么循环读取目录下的文件内容

在Java中,遍历文件夹下的所有文件可以采用递归调用和非递归调用两种方法。这里提供一个非递归调用的例子:

首先定义一个函数traverseFolder1,该函数接受一个字符串类型的参数path,表示待遍历的文件夹路径。函数内部定义了一个链表list,用于存储待遍历的文件夹。接着通过判断文件夹是否存在,获取其下的所有文件和子文件夹。

然后使用while循环和链表的removeFirst方法,将链表中的文件夹逐个取出,继续获取其下的文件和子文件夹,直到链表为空。

如果使用递归方法遍历文件夹,可以定义一个函数getFileList,该函数接受一个字符串类型的参数strPath,表示待遍历的文件夹路径。首先获取该文件夹下的所有文件和子文件夹。

通过循环遍历数组files,如果当前文件是文件夹,则调用自身进行递归遍历;如果当前文件满足特定条件(例如文件名为avi格式),则将文件路径加入filelist集合。

两种方法各有优劣,非递归方法避免了递归调用可能带来的栈溢出问题,但代码复杂度相对较高。而递归方法简洁易懂,但可能遇到栈溢出的问题。

这两种方法都是Java中常用的遍历文件夹的方法,适用于不同场景。在实际开发中,可以根据具体需求选择合适的方法实现。

⑸ 怎么用java的递归输出杨辉三角中第n行第m个数啊

在使用Java进行递归输出杨辉三角时,可以通过编写一个方法来实现。这里有一个简单的例子:

public static int f(int a, int b) {
if (a == b || b == 1) return 1;
return f(a - 1, b - 1) + f(a - 1, b);
}

这个方法用于计算杨辉三角中特定位置的数。如果坐标是从1开始输入的话,那么第六行第四个数应该是10,而非5。杨辉三角中的数是这样排列的:

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1

每一行的数字都可以通过上面的方法递归计算得出。例如,第六行的第四个数(从1开始计数)可以通过计算f(6,4)得到。这是因为杨辉三角的每个数字都是它上方两个数字的和。具体来说,f(a,b)表示第a行第b个数,这里的a和b都是从1开始计数的。

杨辉三角是一个很有用的数学工具,它可以用来解决组合数学中的许多问题。比如,计算组合数C(n,k)(即从n个不同元素中取出k个元素的组合数)时,可以利用杨辉三角中的值,因为C(n,k)正好等于第n+1行第k+1个数。

通过这种方法,我们可以看到杨辉三角中的数字是如何逐步生成的,每一个数字都是由其上方两个数字递归计算得出的。这种递归的方法不仅简洁,而且直观地展示了杨辉三角的生成过程。

以上就是使用Java递归输出杨辉三角中特定位置的数的一个例子。通过这种方法,不仅可以了解杨辉三角的生成机制,还可以加深对递归算法的理解。

⑹ 有一对雌雄兔子,每两个月就繁殖一对雌雄兔子。问n个月共有多少对兔子递归法 java程序

public class Rabit {

/**
* @param args
* 1对兔子每隔两个月又生1对兔子
*/
public static void main(String[] args) {
int months = 16;//月数自己定
test1(months);
}

private static void test1(int months) {
for(int i=1;i<months;i++){
int num = getNumOfEachMonth(i);
System.out.println(num);
}
}

private static int getNumOfEachMonth(int i) {
if(i==1){
return 1;//第一个月一对
}else if(i==2){
return 1;//第二个月一对
}
//第i个月的=(i-1)个月+(i-2)个月的(既上个月和上上个月,这个你可以从规律看出来)

return getNumOfEachMonth(i-1)+getNumOfEachMonth(i-2);

}

}

⑺ java中递归算法是什么怎么算的

一、递归算法基本思路:

Java递归算法是基于Java语言实现的递归算法。递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法表示问题的解。递归往往能给我们带来非常简洁非常直观的代码形式,从而使我们的编码大大简化,然而递归的思维确实跟我们的常规思维相逆的,通常都是从上而下的思维问题,而递归趋势从下往上的进行思维。

二、递归算法解决问题的特点:

【1】递归就是方法里调用自身。

【2】在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。

【3】递归算法代码显得很简洁,但递归算法解题的运行效率较低。所以不提倡用递归设计程序。

【4】在递归调用的过程中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。

【5】在做递归算法的时候,一定把握出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口就是一个条件,当满足了这个条件的时候我们就不再递归了。

三、代码示例:

publicclassFactorial{

//thisisarecursivefunction

intfact(intn){

if(n==1)return1;

returnfact(n-1)*n;

}}
publicclassTestFactorial{publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

Factorialfactorial=newFactorial();

System.out.println("factorial(5)="+factorial.fact(5));

}
}

代码执行流程图如下:

此程序中n=5就是程序的出口。

阅读全文

与java递归字符串相关的资料

热点内容
之前的云服务器怎么查 浏览:250
短地址服务器搭建 浏览:829
单片机求和1 浏览:798
群晖加密共享文件夹数据恢复 浏览:662
单片机汇编程序教程 浏览:616
数控编程dnc 浏览:543
程序员来钱快吗 浏览:374
phpmssql编码 浏览:536
jenkins集成php 浏览:515
androidcpu控制 浏览:95
mt修改器是反编译吗 浏览:449
有什么app都有手机卡 浏览:809
解压按摩用工具 浏览:545
猎豹螺杆压缩机厂家密码 浏览:504
编译出现异常处理方案 浏览:528
stata的安装命令 浏览:397
触摸屏单片机驱动 浏览:965
自制文件夹图标要保存为什么格式 浏览:883
单片机管角分布时的复用功能 浏览:966
dev编译出现乱码怎么解决 浏览:665