我正在尝试编写一个将电话号码转换为不同单词组合的java程序。
许多人发现很难记住电话号码以便他们使用 数字和字母之间的对应关系,以发展七个字母 与他们的电话号码对应的单词。例如,一个人 电话号码是686-2377可能会使用该通信 如图所示电话键盘上的数字和字母来开发 七个字母的单词“NUMBERS。”每个七个字母的单词对应 一个七位数的电话号码。每七个字母的电话 数字对应于许多不同的七个字母的单词,但大多数 这些词代表不可识别的字母并置。写 给定用户提供的七位数字的程序使用的程序 一个PrintStream对象,每个可能的七个字母写入一个文件 与该数字对应的单词组合。有2,187(3 ^ 7) 这样的组合。避免使用数字为0和1的电话号码。
在程序中我遇到了主要方法的问题。这是错的还是我把它放在了错误的地方?
这是我的计划:
public class TelephoneNumberWordGenerator
{
String phoneNumber;
char numberLetters[][] = {
{'0','0','0'},{'1','1','1'},{'A','B','C'},
{'D','E','F'},{'G','H','I'},{'J','K','L'},
{'M','N','O'},{'P','R','S'},
{'T','U','V'},{'W','X','Y'}};
Scanner input = new Scanner (System.in);
private ObjectOutputStream output;
PrintStream printStream;
char[] word = new char [7];
public static void main(String[] args){
public void getPhoneNumber(){
System.out.println("Enter a seven-digit telephone number: ");
phoneNumber = input.next();
}
}
public void openFile()
{
try // open file
{
output = new ObjectOutputStream(
new FileOutputStream ( "Phonenumber.txt") );
}// end try
catch ( IOException ioEcception )
{
System.err.println( "Error opening file.");
} // end catch
}// end method open file
public void addFileInfo( )
{
try
{
char[] chars = phoneNumber.toCharArray ();
int [] digit = new int [chars.length];
for (int i = 0; i < chars.length; i++)
{
digit[i] = Integer.parseInt(String.valueOf(chars[i]));
}
printStream = new PrintStream(output);
printStream.println("\n");
for ( int level0 = 0; level0 < 3; level0 ++ )
{
word[0] = numberLetters[digit[0]][level0];
for ( int level1 = 0; level1 < 3; level1 ++ )
{
word[1] = numberLetters[digit[1]][level1];
for ( int level2 = 0; level2 < 3; level2 ++ )
{
word[2] = numberLetters[digit[2]][level2];
for ( int level3 = 0; level3 < 3; level3 ++ )
{
word[3] = numberLetters[digit[3]][level3];
for ( int level4 = 0; level4 < 3; level4 ++ )
{
word[4] = numberLetters[digit[4]][level4];
for ( int level5 = 0; level5 < 3; level5 ++ )
{
word[5] = numberLetters[digit[5]][level5];
for ( int level6 = 0; level6 < 3; level6 ++ )
{
word[6] = numberLetters[digit[6]][level6];
printStream.print(word);
}
}
}
}
}
}
}
System.out.println("File written.");
System.exit(1);
}
catch (Exception exception )
{
System.err.println( "Error writing to file.");
System.exit(1);
}
}
public void closeFile()
{
try // close file
{
if ( output != null )
output.close();
}// end try
catch (IOException ioException )
{
System.err.println( "Error closing file.");
System.exit(1);
}// end catch
}// end method closeFile
}
答案 0 :(得分:0)
您在主方法中定义了方法getPhoneNumber(),这在Java中是不正确的。 在main方法外部定义它,并在main()内部调用它
答案 1 :(得分:0)
const group = [];
result = [];
let numstr = "";
var letterCombinations = function(num) {
numstr = num.toString();
const letters = [,,['a','b','c'],['d','e','f'],['g','h','i'],['j','k','l'],['m','n','o'],['p','q','r','s'],['t','u','v'],['w','x','y','z']];
for (let i=0; i<numstr.length; i++) {
group.push(letters[parseInt(numstr[i])]);
}
wordMaker(num, 0, "");
return result;
}
const wordMaker = (num, n, w) => {
for (let i=0; i<group[n].length; i++) {
if (n === group.length-1) {
result.push(w + group[n][i])
}
else {
wordMaker(num, n+1, w + group[n][i]);
}
}
}
console.log(letterCombinations(23));
[ 'ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf' ]
答案 2 :(得分:-1)
您的问题必须是另一种方法中的主要方法。在java中,你不能在其他方法中编写方法的代码。
答案 3 :(得分:-1)
public static void main(String[] args){
TelephoneNumberWordGenerator tt=new TelephoneNumberWordGenerator();
System.out.println("Enter a seven-digit telephone number: ");
phoneNumber = input.next();
tt.openFile();
tt.addFileInfo();
tt.closeFile();
}