这是一个组合的例子,它所做的工作是,输出所给字符串中制定数目的元素的组合种类,使用递归算法,小弟实在看不懂它具体是怎么运算的,
求代码详细注释,
import javax.swing.JOptionPane;public class Combination {public static void main(String[] args) {String input = JOptionPane.showInputDialog("please input your String:");String numString = JOptionPane.showInputDialog("please input the number of your Combination:");int num = Integer.parseInt(numString);Combine(input, num);}private static void Combine(String input, int num) {char[] a = input.toCharArray();String b ="";Com(a, num, b, 0, a.length);}private static void Com(char[] a, int num, String b, int low, int high) {if (num == 0) { System.out.println(" "+b);} else {for (int i = low; i<a.length; i++) {b += a[i];Com(a, num - 1, b, i+1, a.length);b=b.substring(0, b.length()-1);}}}求各位大侠给出每行代码的详细注释,
求代码详细注释,
import javax.swing.JOptionPane;public class Combination {public static void main(String[] args) {String input = JOptionPane.showInputDialog("please input your String:");String numString = JOptionPane.showInputDialog("please input the number of your Combination:");int num = Integer.parseInt(numString);Combine(input, num);}private static void Combine(String input, int num) {char[] a = input.toCharArray();String b ="";Com(a, num, b, 0, a.length);}private static void Com(char[] a, int num, String b, int low, int high) {if (num == 0) { System.out.println(" "+b);} else {for (int i = low; i<a.length; i++) {b += a[i];Com(a, num - 1, b, i+1, a.length);b=b.substring(0, b.length()-1);}}}求各位大侠给出每行代码的详细注释,
解决方案 »
- JAVA7如何遍历一个目录下的所有文件,如何知道该目录下文件的数量??求大神指教
- SWT文本框中的数字滚动
- 读取excel时系统找不到指定文件
- iis 获取客户端登陆使用的用户名
- 执行jar程序时界面显示与在其它电脑上显示的不一样?netbeans6.0生成的jar程序如何添加风格包?
- 前提只能用java代码实现,因为一切都是动态的。
- utf-8/unicode转换gb2312的问题
- JBuilder中的光标问题,解决就有分
- 苦恼!大家解救我!
- JAVA的SERVERSOCKET线程如何和客户端进行通信?
- java如何从数据台输入不同类型的数据并储存下来
- 请问怎么从很多1-10的数字中挑选出一组和为100的组合?
if (num == 0) { //当num=0的时候,打印b
System.out.println(" "+b);
} else { //否则
for (int i = low; i<a.length; i++) { 从low位置开始到a的元素结束循环
b += a[i]; //每次循环追加一个字符到b --1
Com(a, num - 1, b, i+1, a.length); //然后递归
b=b.substring(0, b.length()-1); 然后再删除 --1 追加的字符
}
}
}