【发布时间】:2016-03-21 11:54:03
【问题描述】:
我有以下问题:
今天,每个人都想出了一些聪明的短语,让你记住 他们的电话号码。你被赋予了破译这些的任务 短语并找出您需要拨打哪些号码才能联系 这些地方。
说明:您输入的将是一系列字母、数字和破折号。您将需要确定输入序列的编号 以常规的三 - 破折号 - 四格式表示(参见示例输出)。 您还需要确定结果数字是否有效 数字(七位数字),或者如果输入中有数字。
输入:所有字母都将大写。输入字符串最长可达 25 个字符。
输出: 只需一行输出即可打印电话号码,如果号码不是有效号码,或者如果 根本没有数字。
翻译键 ABC = 2 DEF = 3 GHI = 4 JKL = 5 MNO = 6 PRS = 7 TUV = 8 WXY = 9 数字将保持原样并忽略全部 Q, Z 和破折号。示例输入:ITS-EASY 示例输出:487-3279
示例输入:---2---3---TS-4 示例输出:无效数字。
示例输入:QZ---I-M-A-TEST 示例输出:462-8378 示例 输入: ---------- 示例输出:没有电话号码。
我无法将破折号和不必要的字母与翻译成电话号码的实际短语区分开来。到目前为止,这是我的程序:
public static void main(String[] args) {
String cleverPhrase = getCleverPhrase("Input the phrase you use to remember a specific phone number (Max 25 characters allowed): ");
checkPhrase(cleverPhrase);
}
public static String getCleverPhrase(String prompt) {
String input;
System.out.print(prompt);
input = console.nextLine();
return input;
}
public static String checkPhrase(String cleverPhrase) {
int len = cleverPhrase.length();
String output = "";
do {
for(int i = 0; i <= len; i++) {
char current = cleverPhrase.charAt(i);
if (Character.isLetter(current)) {
String newCurrent = Character.toString(current);
if (newCurrent.equals('Q') || newCurrent.equals('Z')) {
}
}
}
} while ()
}
如您所见,我没有取得太大进展。我不知道如何让程序挑选出不必要的字母和破折号,只返回构成数字的字母。有人可以帮我吗?
【问题讨论】:
-
我是否正确猜测分配不允许用户使用正则表达式和第三方库?
标签: java string loops methods char