我正在编写一个程序,允许用户输入一个3位数的电话号码,当他们输入时,程序将返回组合在一起的3个字母的每个组合(根据每个数字包含的字母)。大多数电话号码都有字母。例如,如果用户键入6,2和3,则应返回以下内容:
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方法中)?
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)
{
}
}
答案 0 :(得分:0)
这是我的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
您可以根据需要格式化输出。
希望这会有所帮助:)
答案 1 :(得分:0)
您可以按照主要方法
中的代码运行程序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 GT;&GT;由于letterCombinations()是从letterCombinations()调用的,很明显我们必须先调用letterCombinations()。由于类只包含其中的两个方法,我们必须从main调用letterCombinations()来获得正确的功能。 2 - ;&GT; letterCombinations()不是静态方法,因此我们必须使用类Solution的对象并将所需参数传递给它来调用它。
试试这个,我希望这可以帮助你运行上面的程序