如何运行这个java具有复杂参数的递归程序?

How to run this java recursive program that has complicated arguments?

我正在编写一个程序,允许用户输入一个 3 位数 phone 数字,当他们输入时,该程序将 return 将 3 个字母的每个组合放在一起(基于字母每个数字包含)。大多数 phone 数字中都有字母。例如,如果用户键入 6、2 和 3,它应该 return 以下内容:

MAD MBD MCD NAD NBD NCD OAD OBD OCD
MAE MBE MCE NAE NBE NCE OAE OBE OCE
MAF MBF MCF NAF NBF NCF OAF OBF OCF

我从互联网上复制并粘贴了一段代码(没有用户输入代码),现在我在 运行 程序中添加了一个 main 方法。我不需要获取用户输入代码方面的帮助,但是 which 方法和 how 调用该方法到 运行 程序(在主要方法中)?

import java.util.List;
import java.util.LinkedList;
public class Solution 
{
    public List<String> letterCombinations(String digits) 
    {
        String[] letters = {"abc", "def", "ghi", "jkl", "mno", "pqrs", 
        "tuv", "wxyz"};
        List<String> rec = new LinkedList<>();
        StringBuilder string = new StringBuilder();
        letterCombinations(digits, 0, letters, string, rec);
        return rec;
    }

private void letterCombinations(String digits, int number, String[] letters, 
StringBuilder string, List<String> rec) 
{
    if (digits.length() == number) 
    {
        rec.add(string.toString());
        return;
    }
    String letter = letters[digits.charAt(number) - '2'];
    for (int i = 0; i < letter.length(); i++)
    {
        string.append(letter.charAt(i));
        letterCombinations(digits, number + 1, letters, string, rec);
        string.deleteCharAt(string.length() - 1);
    }


}

    public static void main(String[]args)
    {

    }
}  

这是我的 main() 代码:

public static void main(String[] args) {
        Solution o = new Solution();
        List<String> list1 = o.letterCombinations("623");
        System.out.println(list1);
    }

将此作为输出:

mad, mae, maf, mbd, mbe, mbf, mcd, mce, mcf, nad, nae, naf, nbd, nbe, nbf, ncd, nce, ncf, oad, oae, oaf, obd, obe, obf, ocd, oce, ocf

您可以根据需要格式化输出。

希望这对您有所帮助:)

您可以 运行 通过以下 main 方法中的代码来编写程序

public static void main(String[]args)
{
    Solution t=new Solution ();
    List<String> list=t.letterCombinations("623");

    for(String listitem:list){
        System.out.println(listitem);
    }
}

List<String> rec = new LinkedList<>();替换为List<String> rec = new LinkedList<String>();

说明:: 1>> 由于 letterCombinations() 是从 letterCombinations() 调用的,很明显我们必须调用 letterCombinations() first.As class 只包含这些方法中的两个,我们必须从调用 letterCombinations()主要用于适当的功能。 2>> letterCombinations() 不是静态方法,因此我们必须使用 class Solution 的对象并将所需参数传递给它来调用它。

试试这个,我希望这可以帮助你运行上面的程序